关于ASP.NET中calendar控件与gridview之间的绑定问题

我现在遇到了一个难题。就是关于日期选择的。目的是想实现点击日历控件中的日期之后会获取到当前点击的日期。然后跟数据库中的数据进行对比。并且输出到一个lable或者显示在gr... 我现在遇到了一个难题。就是关于日期选择的。目的是想实现点击日历控件中的日期之后会获取到当前点击的日期。然后跟数据库中的数据进行对比。并且输出到一个lable或者显示在gridview中。public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
public SqlConnection GetConnection()
{
string myStr = ConfigurationManager.AppSettings["ConnectionString"].ToString();
SqlConnection myConn = new SqlConnection(myStr);
return myConn;
}

protected void calendar_DayRender(object sender, DayRenderEventArgs e)
{
string time = calendar1.SelectedDate.ToShortDateString();

Label1.Text = time;
SqlConnection myConn = GetConnection();
myConn.Open();
string sqlStr = "select * from list where planingDate like @time";
SqlCommand myCmd = new SqlCommand(sqlStr, myConn);
myCmd.Parameters.Add("@time", SqlDbType.DateTime, 20).Value = this.Label1.Text.ToString();
SqlDataAdapter myDa = new SqlDataAdapter(myCmd);
DataSet myDs = new DataSet();
myDa.Fill(myDs);
if (myDs.Tables[0].Rows.Count > 0)
{
GridView1.DataSource = myDs;
GridView1.DataBind();
}
else
{

Response.Write("<script>alert('没有相关记录')</script>");
}
myDa.Dispose();
myDs.Dispose();
myConn.Close();
}

这段代码还有问题。请各位大大帮忙指教,现在调试提示sqldatetime溢出,该怎么解决,还有,这段代码还有问题么?谢谢了
myDa.Fill(myDs); 调试的时候还是显示这里的时间越界 SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。 不知道该怎么设置。。。感谢 handsomemank大大了
展开
 我来答
handsomemank
2010-02-11 · TA获得超过130个赞
知道小有建树答主
回答量:215
采纳率:0%
帮助的人:184万
展开全部
你在 传递参数的时候 传错了,你定义的参数是datetime ,但是传的值确实string ...修改 后你再看下.....
protected void calendar_DayRender(object sender, DayRenderEventArgs e)
{
Datetime time = calendar1.SelectedDate;

Label1.Text = time;
SqlConnection myConn = GetConnection();
myConn.Open();
string sqlStr = "select * from list where planingDate like @time";
SqlCommand myCmd = new SqlCommand(sqlStr, myConn);

myCmd.Parameters.Add("@time", SqlDbType.DateTime, 20).Value = time ;

SqlDataAdapter myDa = new SqlDataAdapter(myCmd);
DataSet myDs = new DataSet();
myDa.Fill(myDs);
if (myDs.Tables[0].Rows.Count > 0)
{
GridView1.DataSource = myDs;
GridView1.DataBind();
}
else
{

Response.Write("<script>alert('没有相关记录')</script>");
}
myDa.Dispose();
myDs.Dispose();
myConn.Close();
}

/*
个人建议在获取到时间的时候 设置一个断点,看到底获取到时间了没,出现这种情况可能是在调用日历控件的时候 ,日历控件还没有完成初始化,因此 取到的时间为空..所以会出现这种情况.代码可如下修改:
*/
//再看这样修改可以不

Datetime time = calendar1.SelectedDate;

if(time==null){//没有获取到时间,
return;}

Label1.Text = time;
SqlConnection myConn = GetConnection();
myConn.Open();
string sqlStr = "select * from list where planingDate like @time";
SqlCommand myCmd = new SqlCommand(sqlStr, myConn);

myCmd.Parameters.Add("@time", SqlDbType.DateTime, 20).Value = time ;

SqlDataAdapter myDa = new SqlDataAdapter(myCmd);
DataSet myDs = new DataSet();
myDa.Fill(myDs);
if (myDs.Tables[0].Rows.Count > 0)
{
GridView1.DataSource = myDs;
GridView1.DataBind();
}
else
{

Response.Write("<script>alert('没有相关记录')</script>");
}
myDa.Dispose();
myDs.Dispose();
myConn.Close();
evening2009
2010-02-06 · 超过34用户采纳过TA的回答
知道答主
回答量:115
采纳率:0%
帮助的人:0
展开全部
关注。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式