[英]vb.net error in parsing query of flexible column name
我的查詢中有問題。
我試圖更新一個數據集,如果它存在於另一個數據表中。
我有一個數據表ds1.table(0)
具有18列用2個主鍵和數據表ds2.table(0)
與行的靈活數量。
如果列名ds1.table(0)
存在的行ds2.table(0)
我想更新我的數據庫。
If rc1 > 0 Then
For Each co As DataColumn In ds1.Tables(0).Columns
Dim ColName As String = co.ColumnName
If rc2 > 0 Then
For Each ro As DataRow In ds2.Tables(0).Rows
Dim RoName As String = ro(0).ToString
If RoName.Contains(ColName) Then
Dim cmnd1 As SqlCeCommand
Try
con.Open()
Dim cry As String = "UPDATE serdate SET ['" & ColName & "'] = @date WHERE ((company = '" & Company & "') AND (number = '" & number & "'))"
cmnd1 = New SqlCeCommand(cry, con)
cmnd1.Parameters.Add(New SqlCeParameter("@date", Now))
cmnd1.ExecuteNonQuery()
MsgBox("Update Success")
Catch ex As Exception
MsgBox("Query Error! " & ex.Message)
Finally
con.Close()
End Try
End If
Next
End If
Next
End If
我有一些錯誤。
錯誤是
解析查詢時出錯:列名無效
該錯誤是由您嘗試更新數據庫中不存在的列引起的。 查看表定義以確保該列實際存在。 但是,您要在列名前后加上'
,這在引用列時是不必要的,並且很可能導致錯誤。 刪除'
然后使用有效的列名來解決此問題。
一點不相關的注釋是,您的SQL查詢仍然容易受到SQL注入的攻擊。 您應該對要放入查詢中的每個變量使用參數,例如如何輸入日期。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.