Sql 查询表达式“[DeliverTime]、[DeliverDate]=“9:00”、“10/17/2017”中存在语法错误(逗号)。发生了什么?

Sql 查询表达式“[DeliverTime]、[DeliverDate]=“9:00”、“10/17/2017”中存在语法错误(逗号)。发生了什么?,sql,vb.net,Sql,Vb.net,这是我的SQL查询: sql=从CaterTrans中选择*,其中[DeliverTime]、[DeliverDate]=' &TextBox1.Text&','&DateTimePicker1.Text&' cmd=新的OleDb.OleDbCommandsql,cnn reader=cmd.ExecuteReader 如果reader.Read=True,则 Dim ans=msgbox此日期和时间已存在,请注意! 如果ans=vbYes,则 TextBox1.Text=True DateT

这是我的SQL查询:

sql=从CaterTrans中选择*,其中[DeliverTime]、[DeliverDate]=' &TextBox1.Text&','&DateTimePicker1.Text&' cmd=新的OleDb.OleDbCommandsql,cnn reader=cmd.ExecuteReader 如果reader.Read=True,则 Dim ans=msgbox此日期和时间已存在,请注意! 如果ans=vbYes,则 TextBox1.Text=True DateTimePicker1.Enabled=True List1.Enabled=False 按钮4.Enabled=True TextBox1.Text= DateTimePicker1。文本=
首先,您应该使用,而不是像以前那样直接将值与查询连接起来

如果where子句不正确,则应使用AND或not with添加多个筛选器,如下所示:

sql = "SELECT * From CaterTrans WHERE  [delivtime_] = @Parameter1
  AND [delivdate_] =  @Paramater2";
sql = "SELECT * From CaterTrans WHERE  [delivtime_] = '" & 
          TextBox1.Text & "' and [delivdate_] = '" & DateTimePicker1.Text & "'"

首先,您应该使用,而不是像以前那样直接将值与查询连接起来

如果where子句不正确,则应使用AND或not with添加多个筛选器,如下所示:

sql = "SELECT * From CaterTrans WHERE  [delivtime_] = @Parameter1
  AND [delivdate_] =  @Paramater2";
sql = "SELECT * From CaterTrans WHERE  [delivtime_] = '" & 
          TextBox1.Text & "' and [delivdate_] = '" & DateTimePicker1.Text & "'"

Annabeth Moore是完全正确的,您应该使用参数,如果您不这样做,它将如下所示:

sql = "SELECT * From CaterTrans WHERE  [delivtime_] = @Parameter1
  AND [delivdate_] =  @Paramater2";
sql = "SELECT * From CaterTrans WHERE  [delivtime_] = '" & 
          TextBox1.Text & "' and [delivdate_] = '" & DateTimePicker1.Text & "'"
在db2中,这也会起作用

sql = "SELECT * From CaterTrans WHERE  ([delivtime_], [delivdate_]) = ('"
           & TextBox1.Text & "', '" & DateTimePicker1.Text & "')"
或者来自安娜贝思

sql = "SELECT * From CaterTrans WHERE  ([delivtime_], [delivdate_]) = (@Parameter1, @Paramater2)";

因为db2支持元组。

Annabeth Moore是完全正确的,您应该使用参数,如果您不这样做,它将如下所示:

sql = "SELECT * From CaterTrans WHERE  [delivtime_] = @Parameter1
  AND [delivdate_] =  @Paramater2";
sql = "SELECT * From CaterTrans WHERE  [delivtime_] = '" & 
          TextBox1.Text & "' and [delivdate_] = '" & DateTimePicker1.Text & "'"
在db2中,这也会起作用

sql = "SELECT * From CaterTrans WHERE  ([delivtime_], [delivdate_]) = ('"
           & TextBox1.Text & "', '" & DateTimePicker1.Text & "')"
或者来自安娜贝思

sql = "SELECT * From CaterTrans WHERE  ([delivtime_], [delivdate_]) = (@Parameter1, @Paramater2)";

因为db2支持元组。

您能像对待VB代码一样,将SQL代码格式化为代码吗?我的SQL代码在VB代码的顶部。您误解了,您需要格式化它,如:SQL=SELECT*FROM。。。。我看不出哪一个是单撇号,哪一个是引号。始终使用SQL参数仅在db2c中工作您是否可以将SQL代码格式化为代码,就像您在VB代码中一样?我的SQL代码位于我的VB代码的顶部您误解了,您需要格式化它,如:SQL=SELECT*FROM。。。。我看不出哪一个是单撇号,哪一个是引号。始终使用SQL参数仅适用于DB2