试图在两个日期之间显示数据.data存在于DB表中仍然显示没有找到记录

问题描述 投票:0回答:2

我想在两个日期之间显示数据。我的输入是08/17/2018和08/18/2018数据出现在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
2个回答
-1
投票

也许那是因为你的datetime专栏的时间价值,试试这个:

"SELECT User_Name , Product_Code , Log_Detail  FROM Product_Detail WHERE Log_Detail BETWEEN CONVERT ('" + TextBox1.Text + "', GETDATE()) AND CONVERT ('" + TextBox2.Text + "', GETDATE())"

-1
投票

您需要以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);
© www.soinside.com 2019 - 2024. All rights reserved.