c# - 试图在两个日期之间显示数据。数据存在是数据库表,它仍然显示没有找到记录
问题描述
我正在尝试显示两个日期之间的数据。我的输入是 2018 年 8 月 17 日和 2018 年 8 月 18 日数据存在于 Gridview 中,但我仍然收到类似的错误,未找到记录
这是我的代码
myConn.Open();
SqlCommand cmd = new SqlCommand(@"SELECT User_Name , Product_Code , Log_Detail FROM Product_Detail
WHERE Log_Detail BETWEEN '" + TextBox1.Text + "' AND '" + TextBox2.Text + "' ", myConn);
SqlDataReader reader = cmd.ExecuteReader();
GridView1.DataSource = reader;
if (reader.Read())
{
GridView1.DataBind();
}
else
{
Lab3.Text = "No Records Found";
}
myConn.Close();
解决方案
您需要以 YYYY-MM-DD 格式指定日期。您指定的格式将被解释为 DD-MM-YYYY 或 MM-DD-YYYY,直到该月的第 12 天通常可以互换。
var from = DateTime.ParseExact(TextBox1.Text, "MM/DD/YYYY"); // Change the format to match your locale
var to = DateTime.ParseExact(TextBox2.Text, "MM/DD/YYYY");
SqlCommand cmd = new SqlCommand(@"SELECT User_Name , Product_Code , Log_Detail FROM Product_Detail
WHERE Log_Detail BETWEEN '" + from.ToString("O") + "' AND '" + to.ToString("O") + "' ", myConn);