0

p.FlagaWaznosci と p.Notatka の 2 つのフィールドを更新したい

私の選択は次のようになります:

Select  DISTINCT p.id,p.Model_Number,p.Product_Name,p.Website_Link,p.Entry_date,p.LastUpdate_date,p.PrzydzialRozmiarow_ID,p.FlagaWaznosci,p.Notatka,pr.NazwaRozmiarowki,wd.LINK_StockX 
from Products p with(nolock)
left outer  join Widok_Model_Sklep_Stockx_Linki wd with(nolock) on wd.Product_ID = p.id 
left outer join PrzydzialRozmiarow pr with(nolock) on pr.id = p.PrzydzialRozmiarow_ID 
inner join Shops s with(nolock) on s.ID = p.Shop_ID 

グリッドビューに表示する必要がある正しいデータを取得するための外部結合があります。そして、値 p.FlagaWaznosci または p.Notatka が変更されたときに、データベースに更新を保存したいと考えています。

使ってみます

//loads dataand fill to gridview
 DataTable WszystkieProduktyDlaDanegoSklepu;
 SqlDataAdapter sda555123 = new SqlDataAdapter("here is my select", conn123);
 sda555123.Fill(WszystkieProduktyDlaDanegoSklepu);
 
 //later update table Prooducts and save changed on p.Notatka and p.FlagaWaznosci
 cmdbl = new SqlCommandBuilder(sda555123);
 cmdbl.ConflictOption = ConflictOption.OverwriteChanges;
 sda555123.Update(WszystkieProduktyDlaDanegoSklepu);

しかし、この方法ではエラーが発生します

ここに画像の説明を入力

だから私はたくさん検索して見つけました:私は独自の CommandUpdate を書かなければなりません。

だから...sda555123.UpdateCommandそして、更新コマンドで独自の更新を作成する方法がわかりません。

SQL Server の更新は次のようになります。

Update Products
set FlagaWaznosci = @Flagawaznosci from my sda555123,
Notatka = @Notatka from my sda555123 
where id = @ p.ID from my sda555123 

コマンドの更新は次のようになりますか?

編集1:

私は追加してみます: WszystkieProduktyDlaDanegoSklepu.PrimaryKey = new DataColumn[] { WszystkieProduktyDlaDanegoSklepu.Columns["id"] } しかし何もありません。それでもこのエラー。

4

2 に答える 2