文本框中两个日期之间的数据:代码错误

本文关键字:之间 数据 错误 代码 日期 两个 文本 | 更新日期: 2023-09-27 17:53:09

日期文本框到文本框当在文本框中写入日期时,两个日期之间的校正数据将进入数据网格我的代码是:*

    private void btnSubmit_Click(object sender, EventArgs e)
    {
        SqlConnection cs = new SqlConnection("Data Source=IRIS-CSG-174;Initial Catalog=library_system;Integrated Security=True");
        cs.Open();
        SqlCommand cmd = new SqlCommand("select * from dbo.lib_issue_details where book_issue_on between=" + textBox1.Text+""+"and"+ textBox2.Text +"", cs);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        DataSet ds = new DataSet();
        da.Fill(ds, "lib_issue_details");
        dataGridView1.DataBindings.Add(new Binding("text", ds, "lib_issue_details.book_issue_on"));

显示'='附近语法不正确。帮助我在这个代码…提前感谢!!

文本框中两个日期之间的数据:代码错误

我觉得这行

SqlCommand cmd = new SqlCommand("select * from dbo.lib_issue_details where book_issue_on between=" + textBox1.Text+""+"and"+ textBox2.Text +"", cs);

应该是这样的:

SqlCommand cmd = new SqlCommand("select * from dbo.lib_issue_details where book_issue_on between " + textBox1.Text + " and " + textBox2.Text, cs);

或者,更好的方法是使用参数。

SqlCommand cmd = new SqlCommand("select * from dbo.lib_issue_details where book_issue_on between @date1 and @date2", cs);
cmd.Parameters.Add("@date1", SqlDbType.DateTime);
cmd.Parameters["@date1"].Value = textBox1.Text;
cmd.Parameters.Add("@date2", SqlDbType.DateTime);
cmd.Parameters["@date2"].Value = textBox1.Text;

我可能会考虑使用DateTimePicker而不是文本框。

删除查询中的"="
应该是where book_issue_on between date1 and date2,不需要'='号

你的代码应该是
SqlCommand cmd = new SqlCommand("select * from dbo.lib_issue_details where book_issue_on between " + textBox1.Text+""+" and "+ textBox2.Text +"", cs);

使用命令参数。如果只是为了安全(SQL注入)

一些例子:

  • 第06课:给命令添加参数
  • SqlCommand。参数属性