首页 > 解决方案 > 试图在两个日期之间显示数据。数据存在是数据库表,它仍然显示没有找到记录

问题描述

我正在尝试显示两个日期之间的数据。我的输入是 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();

标签: c#asp.net

解决方案


您需要以 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);

推荐阅读