如何从日期到日期ASP.NET和SQL Server搜索GridView



这是我的代码,它引发了错误。我正在为HTML编码使用输入类型文本。

using (SqlConnection con = new SqlConnection("Data Source=USER-PC;Initial Catalog=1GCAttendanceManagementSystem;Integrated Security=True"))
{
    using (SqlCommand cmd = new SqlCommand("SELECT * FROM Attendances WHERE Date BETWEEN @From AND @To", con))
    {
        using (SqlDataAdapter da = new SqlDataAdapter(cmd))
        {
           cmd.Parameters.Add("@From", SqlDbType.Date).Value = datepicker1.Text;
           cmd.Parameters.Add("@To", SqlDbType.Date).Value = datepicker2.Text;
           DataSet ds = new DataSet();
           da.Fill(ds);
           GridView1.DataSource = ds;
           GridView1.DataBind();
       }
   }
}

这是错误的屏幕截图

您正在获取Text,即string并将其传递。尝试首先将其转换为DateTime数据类型,例如:

   DateTime oDateFrom = Convert.ToDateTime(datepicker1.Text);
   DateTime oDateTo = Convert.ToDateTime(datepicker2.Text);

然后将它们传递到parameters

cmd.Parameters.Add("@From", SqlDbType.Date).Value = oDateFrom;
cmd.Parameters.Add("@To", SqlDbType.Date).Value = oDateTo;

希望在您再次询问之前对您有所帮助,并请阅读;我应该怎么问一个好问题?

最新更新