无法在文本框中找到输入日期

时间:2018-03-22 10:02:30

标签: c# database date

如何将我的日期搜索到数据网格视图?我有一个示例代码,我认为是正确的,但为什么不搜索?

enter image description here

    private void textBox3_TextChanged(object sender, EventArgs e)
    {

        if (string.IsNullOrEmpty(textBox3.Text))
        {
            SqlDataAdapter sda = new SqlDataAdapter("Select * from STUDENT_RESEARCH_PROJECTS WHERE COURSE LIKE '" + comboBox2.Text + "%'", con);
            DataTable data = new DataTable();
            sda.Fill(data);
            dataGridView1.DataSource = data;
        }

        else
        {
            SqlDataAdapter sda = new SqlDataAdapter("SELECT ACCESSION_NO,TITLE_PROJECT,CATEGORY,YEAR,COURSE,DATE,Student_Name1,Student_Name2,Student_Name3,Student_Name4,Student_Name5,RELATED_TITLE1,RELATED_TITLE2,RELATED_TITLE3,RELATED_TITLE4,RELATED_TITLE5 FROM STUDENT_RESEARCH_PROJECTS WHERE DATE LIKE'" + textBox3.Text + "%'", con);
            DataTable data = new DataTable();
            sda.Fill(data);
            dataGridView1.DataSource = data;
        }
    }

2 个答案:

答案 0 :(得分:0)

除非您的LIKE字段是字符串,否则您无法使用DATE进行日期比较

您还需要检查日期数据如何保存到数据库中

例如,在我的数据库中,我使用的是datetime,其保存方式与2018-03-20 07:25:58.557一样

因此,当您查询时,您需要设置日期格式才能被接受

答案 1 :(得分:0)

首先要注意SQL注入。

您不能在Date列上使用like运算符。

您的搜索TextBox值日期格式为03/20/2018(mm/dd/yyyy),数据库列包含不同的内容,通常2018-03-20 00:00:00.000进行搜索时日期会更改从数据库查询时的格式。

    private void textBox3_TextChanged(object sender, EventArgs e)
    {

        if (string.IsNullOrEmpty("textBox3.Text"))
        {
            string query = "Select * from STUDENT_RESEARCH_PROJECTS WHERE COURSE LIKE @COURSE";
            SqlCommand cmd = new SqlCommand(query, con);
            cmd.Parameters.AddWithValue("@COURSE", comboBox2.Text);

            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataTable data = new DataTable();
            sda.Fill(data);
            dataGridView1.DataSource = data;
        }

        else
        {
            string query = "SELECT ACCESSION_NO,TITLE_PROJECT,CATEGORY,YEAR,COURSE,DATE,Student_Name1,Student_Name2,Student_Name3,Student_Name4,Student_Name5,RELATED_TITLE1,RELATED_TITLE2,RELATED_TITLE3,RELATED_TITLE4,RELATED_TITLE5 FROM STUDENT_RESEARCH_PROJECTS WHERE CONVERT(varchar(10) ,DATE, 101)  = @DATE";
            SqlCommand cmd = new SqlCommand(query, con);
            cmd.Parameters.AddWithValue("@DATE", textBox3.Text);
            SqlDataAdapter sda = new SqlDataAdapter();
            DataTable data = new DataTable();
            sda.Fill(data);
            dataGridView1.DataSource = data;
        }
    }