1

私がやろうとしているのは、ASP.NET (フレームワーク 4) から、ユーザーがレコード キーを使用して SQL データベースの既存のレコードを更新できるようにすることです。Visual Studio 2010 の使用 (vb)

「 \ 」の近くに Syntax のエラーが表示されます。2 つのテキスト ボックスがあります。

Dim Con As New SqlConnection
Dim SQL As String
Dim com As SqlCommand = Con.CreateCommand
Dim KeyID As Integer
KeyID = TextBox1_UpdateDataReview.Text

Con.ConnectionString = "Data Source=WCRDUSMJEMPR9\SQLEXPRESS;Initial Catalog=MicroDB;Integrated Security=True"
Con.Open()
SQL = "UPDATE ControlCharts set Control_ClosedByRev=" & TextBox2_UpdateDataReview.Text & " where ID_ControlCharts= " & KeyID
Dim cmd As New SqlCommand(SQL, Con)
'cmd.ExecuteScalar()
cmd.ExecuteNonQuery()
Label1_UpdateDataReview.Text = "Record Updated"

cmd.execute を変更してみましたが、うまくいきませんでした。前もって感謝します。

4

2 に答える 2

2

まず、これは SQL インジェクションに対して非常に脆弱です。それを読み込んで、代わりにパラメータ化されたクエリを使用してください。

役立つサンプルコードを次に示します。

    Con.ConnectionString = "Data Source=WCRDUSMJEMPR9\\SQLEXPRESS;Initial Catalog=MicroDB;Integrated Security=True"
    Con.Open()
    SQL = "UPDATE ControlCharts set Control_ClosedByRev=@ClosedByRev where ID_ControlCharts=@Key"

    Dim cmd As New SqlCommand(SQL, Con)
    cmd.Parameters.AddWithValue("@ClosedByRev ", TextBox2_UpdateDataReview.Text)
    cmd.Parameters.AddWithValue("@Key", KeyID)
    cmd.ExecuteNonQuery()

幸運を。

于 2013-01-17T17:51:15.027 に答える
0

これを試してください:文字列の前に「@」記号を入れてください

 Con.ConnectionString = @"Data Source=WCRDUSMJEMPR9\SQLEXPRESS;Initial Catalog=MicroDB;Integrated Security=True"

またはスラッシュをエスケープします"Data Source=WCRDUSMJEMPR9\\SQLEXPRESS;Initial Catalog=MicroDB;Integrated Security=True"

于 2013-01-17T17:50:48.210 に答える