关于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大大了 展开
{
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大大了 展开
2个回答
展开全部
你在 传递参数的时候 传错了,你定义的参数是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();
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();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询