0

i use VB.NET On Visual Studio 2008

Error: Incorrect syntax near the keyword 'and'.

Code.

    sb.Remove(0, sb.Length())
    sb.Append("SELECT tf.*")
    sb.Append(" FROM filesTA tf")
    sb.Append(" WHERE tf.ChkDate = '" & dateTimePicker.Value.ToString("yyyy-MM-dd") & "'")
    Dim SqlLR As String = sb.ToString()
    da.SelectCommand.CommandText = SqlLR
    da.Fill(ds, "filesTA9")

    If ds.Tables("filesTA9").Rows.Count = 0 Then
        sb.Remove(0, sb.Length())
        sb.Append("INSERT INTO filesTA (EmpNo,ChkDate,LastUpdate) ")
        sb.Append("SELECT tft.EmpNo,tft.ChkDate,tft.LastUpdate ")
        sb.Append("FROM TA_FillTime tft ")
        sb.Append("WHERE Convert(nvarchar(10),tft.ChkDate,126) Between DATEADD(Day , -1, '" & dateTimePicker.Value.ToString("yyyy-MM-dd") & "' and '" & dateTimePicker.Value.ToString("yyyy-MM-dd") & "'")
        sb.Append(" Order By tft.ChkDate ")

        Dim SqlLR2 As String = sb.ToString()
        da.SelectCommand.CommandText = SqlLR2
        da.Fill(ds, "filesTA9") => **Error this line: Incorrect syntax near the keyword 'and'.**
        'label1.Text = "Insert Done"
    ElseIf ds.Tables("filesTA9").Rows.Count > 0 Then
        'label1.Text = "Insert New Done"
    Else
        'label1.Text = "Insert Done..."
    End If

thanks you for your time. :)

4

1 に答える 1

1

ブラケットを忘れました:

  ..snip.. Between DATEADD(Day , -1, '" & dateTimePicker.Value.ToString("yyyy-MM-dd") & ")' and ...snip ...
  scroll over here--->                                                                   ^---here

これにより、DATEADD()関数呼び出しが終了しなくなりました。SQLクエリを生成するためのコードを投稿することは、通常、生成した実際のクエリを表示するほど有用ではありません。SQL構文エラーは、それらの周りの数トンの役に立たない「綿毛」からクエリを抽出する必要なしに、見つけるのに十分難しい場合があります。

于 2012-12-30T15:43:19.517 に答える