2017-05-15 23 views
0

次はC#Windowsアプリケーションのクエリです。問合せは、データベースから項目を削除します。SQL Server: '='の構文が正しくありません 'WHERE'というキーワードの近くにある構文が正しくありません

cmd = new SqlCommand("Delete Articulos set CODIGOPRODUCTO = '" + 
    textBox1codigo.Text + "', CODALTER = '" + textBox1codAlterno.Text + 
    "', DESCRIPCION = '" + richTextBox1descripcion.Text + 
    "', PRECIOVENTA = '" + textBox1precioVenta.Text + "', COSTO='" + 
    textBox1costo.Text + "', IVAPORCENTAJE='" + textBox1iva.Text + 
    "', IDPROVEEDOR = (SELECT IdClienteProveedor FROM ClienteProveedor WHERE " + 
    "RAZONSOCIAL = '" + comboBox1proveedor.Text + "') WHERE IdArticulo='" + IDARTICULO + 
    "'", Login.VENTAS); 

が、それは次のエラーをスロー実行:

Error: SQL incorrect syntax near '='

Error: Incorrect syntax near the keyword 'WHERE'

+0

stackoverflowがどのようにクエリを強調表示しているか確認してください。 – zerkms

+4

クエリ文字列を作成せず、パラメータを使用します。 – dasblinkenlight

+2

なぜSETを使用して、実際に削除クエリ内の行の値を更新しようとしていますか?それはちょうどArticulosから削除するべきではありませんWHERE IdArticulo = '"+ IDARTICULO +"' " –

答えて

0

エラーはここにある:

WHERE IdArticulo=" 
:へ

WHERE IdArticulo='" 

変更

+0

一重引用符で値を折り返すと何が問題になりますか?何かが見つからない限り、' varchar'型には必要ではありません。 ? –

2

レコードを更新しようとしていますか? は、レコードを削除する場合は、[はいそうでdeleteupdateへ を変更した場合set一部を除去だけ

Delete From YourDatabase Where <This>=<this>. 

を入れて、single quoteがSQLないdouble qoute内の文字列を宣言するために使用されますが、代わりに単一引用符をエスケープしなければならないことに注意してください取ります二重引用符の

関連する問題