私の予約フォームのテキストボックス値を使用して動的にクエリを生成しようとしていますが、ユーザーが入力した値のみを更新します。VB.NetでSQL Serverデータベースを動的に更新します。
私は次のコードを使用しています:
Dim str As String
str = "UPDATE Bookings SET "
Dim first As Integer = 1
For Each x As Control In Me.Controls
If x.GetType Is GetType(TextBox) Then
If first = 1 Then
first = 2
Else
str &= ","
End If
If x.Tag = 1 Then
str = str & x.Name & " = @" & x.Name
End If
End If
Next
をしかし、それはこのようなクエリ生成している:私はちょうど1フィールドを更新したい場合は
Update Bookings SET ,,booking_date = @booking_date,,,,,cust_name = @cust_name where bookingID = @bookingID
をそれとも、この生成:
Update Bookings SET ,,,,,,,cust_name = @cust_name where bookingID = @bookingID
これはあなたの質問に全く答えられないことは知っていますが、SQLCommandとSQLParametersを使用することを検討してください。このようなSQLの生成は大規模なセキュリティ上の欠陥です。 –
私はsqlcommandとsqlパラメータを使用していますが、このコードは実行時に値を持つテキストボックスに対してクエリを生成するだけです –