2017-02-16 10 views
0

追加情報が次のように戻ってくるので、ここで問題が解決できません。私は、エラーを見ることができないこれに新鮮な目を必要とする。ここ System.Data.SqlClient.SqlExceptionがSystem.Data.dllで発生しました(構文が正しくありません)

が私のコードで、イムが選択OWNER_IDに情報を更新しようと

System.Data.SqlClient.SqlCommand command = new SqlCommand("UPDATE OwnerTable SET (Owner_ID, Owner_Fname, Owner_Lname, Owner_HouseNo, Owner_Street, Owner_County, Owner_PostCode, Owner_Tele, Owner_Email) VALUES (@OwnerID, @OwnerFName, @OwnerLName, @OwnerHouseNo, @OwnerStreet, @OwnerCounty, @OwnerPostCode, @OwnerTele, @OwnerEmail) WHERE Owner_ID = @OwnerID", connection); 

      command.CommandType = CommandType.Text; 
      command.Connection = connection; 

      command.Parameters.AddWithValue("@OwnerID", CB_OWNER_ID.GetItemText(CB_OWNER_ID.SelectedItem)); 

      command.Parameters.AddWithValue("@OwnerFName", TXT_OWNER_FNAME.Text); 
      command.Parameters.AddWithValue("@OwnerLName", TXT_OWNER_LNAME.Text); 
      command.Parameters.AddWithValue("@OwnerHouseNo", TXT_OWNER_HOUSENO.Text); 
      command.Parameters.AddWithValue("@OwnerStreet", TXT_OWNER_STREET.Text); 
      command.Parameters.AddWithValue("@OwnerCounty", TXT_OWNER_COUNTY.Text); 
      command.Parameters.AddWithValue("@OwnerPostCode", TXT_OWNER_POSTCODE.Text); 
      command.Parameters.AddWithValue("@OwnerTele", TXT_OWNER_TELE.Text); 
      command.Parameters.AddWithValue("@OwnerEmail", TXT_OWNER_EMAIL.Text); 
+0

'set a = b、c = d'です。 –

+0

@PatrickHofman、ANSI SQLには 'set(c1、c2)=(v1、v2)'、機能T641、「複数列の割り当て」があります。 (少なくともいくつかのベンダーがサポートしています) – jarlh

+0

しかしOPは 'values'を使っています。これは間違っています@jarlh –

答えて

3

あなたが代わりにUPDATE構文のINSERT構文を使用しました。。:

UPDATE OwnerTable SET Owner_ID = @OwnerID, Owner_Fname = @OwnerFName ..etc 

それとも、実際にしたい場合は、INSERT INTO新しいレコードの変更UPDATEを挿入し、WHEREを削除する(しかし、私はWHEREはあなたが更新したかったことを示していると思います)。

Btw:OwnerTableOwnerIDを更新してもよろしいですか?私に間違っているようだ。

+0

これはありがとう、私は完全に混ざってしまった!所有者テーブルの更新についてはあなたが正しいです。所有者テーブルの所有者IDを更新したくありません。 – elszeus

関連する問題