簡體   English   中英

解析彈性列名稱的查詢中的vb.net錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM