0

フォームにテキストボックスとボタンがあります。

IN値を使用してクエリを生成するクエリを(Vb.Netで)実行したいと思います。

以下は私のコードの例です

myConnection = New SqlConnection("Data Source=sqldb\;Initial Catalog=Rec;Integrated Security=True")
myConnection.Open()
myCommand = New SqlCommand("UPDATE dbo.Recordings SET Status = 0 where RecID in ('" & txtRecID.Text & "') ", myConnection)
ra = myCommand.ExecuteNonQuery()
myConnection.Close()
MsgBox("Done!", _
MsgBoxStyle.Information, "Done")

単一の値を入力すると機能しますが、コンマを使用して値を入力するとエラーが発生します。

varchar値「1234,4567」をデータ型intに変換するときに変換に失敗しました。」

誰かが私がこれを解決するのを手伝ってくれますか、または別の方法がありますか?

どうもありがとう

4

2 に答える 2

3

IN値をラップしている一重引用符を削除してみてください。

myCommand = New SqlCommand("UPDATE dbo.Recordings SET Status = 0 WHERE RecID IN (" & txtRecID.Text & ") ", myConnection) 
于 2010-09-30T10:34:52.140 に答える
1

複数の値についてSTRING変数をテストする場合、それらの複数の値は引用符で囲む必要があります。

最初の試みが「ほぼ」機能した理由は、個々の値を引用符で囲んでSqlCommandを生成することもできたためです。IE
UPDATE dbo.Recordings SET Status = 0 where RecID IN ('1234', '5678')

その場合、T-SQLは各文字列値をINTに暗黙的に変換します。これは、「1234、5678」を指定したときに実行しようとしていたことですが、INTとして解読することはできません。

于 2011-03-28T12:59:53.487 に答える