0

3 つの Gridviews を持つ Windows フォームがあります (スクリーンショットを参照) ここに画像の説明を入力。グリッドビューの 1 つは空のセルに新しい値を取得し、他の 2 つはそれぞれ新しい行を取得します。保存ボタンをクリックすると、値が追加されたテーブルを更新し、新しい行を他の 2 つのテーブルに挿入したいと考えています。正しいコードを理解するのは非常に困難です。今私は持っています:

private void buttonSave_Click(object sender, EventArgs e)
{
   DataTable table1 = alereDataSet.Tables["immaster"];
   DataTable table2 = uPCDataSet.Tables["UPC"];
   DataTable table3 = hangtagDataSet.Tables["upccode"];
   DialogResult dr = MessageBox.Show("Are you sure you want to commit the values to the databases?", "Message", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information);
   if (dr == DialogResult.Yes)
   try
   {
      immasterTableAdapter.Update(table1.Select(null, null, DataViewRowState.CurrentRows));
      upccodeTableAdapter.Update(table3.Select(null, null, DataViewRowState.Added));
      uPCTableAdapter.Update(table2.Select(null, null, DataViewRowState.Added));
   }

   catch (System.Exception ex)
   {
      System.Windows.Forms.MessageBox.Show(ex.Message);
   }
}

しかし、保存をクリックしても何も起こりません。テーブルの Update メソッドが原因だと感じています。3 つのテーブルのうち 2 つは VFP テーブルで、3 つ目は SQL テーブルです。助けが必要なのは、更新コマンドを理解することです。2 つの VFP テーブルは Update メソッドを自動的に作成しません。SQL テーブルのコードは次のとおりです。

UPDATE UPC
SET UPCBarcode = @UPCBarcode, UPCNumber = @UPCNumber, ItemNumber = @ItemNumber, Itemdescrip = @Itemdescrip
WHERE (UPCBarcode = @Original_UPCBarcode) AND (@IsNull_UPCNumber = 1) AND (UPCNumber IS NULL) AND (@IsNull_ItemNumber = 1) AND (ItemNumber IS NULL) AND (@IsNull_Itemdescrip = 1) AND (Itemdescrip IS NULL) OR (UPCBarcode = @Original_UPCBarcode) AND (UPCNumber = @Original_UPCNumber) AND (@IsNull_ItemNumber = 1) AND (ItemNumber IS NULL) AND 
                      (@IsNull_Itemdescrip = 1) AND (Itemdescrip IS NULL) OR
                      (UPCBarcode = @Original_UPCBarcode) AND (@IsNull_UPCNumber = 1) AND (UPCNumber IS NULL) AND (ItemNumber = @Original_ItemNumber) AND 
                      (@IsNull_Itemdescrip = 1) AND (Itemdescrip IS NULL) OR
                      (UPCBarcode = @Original_UPCBarcode) AND (UPCNumber = @Original_UPCNumber) AND (ItemNumber = @Original_ItemNumber) AND 
                      (@IsNull_Itemdescrip = 1) AND (Itemdescrip IS NULL) OR
                      (UPCBarcode = @Original_UPCBarcode) AND (@IsNull_UPCNumber = 1) AND (UPCNumber IS NULL) AND (@IsNull_ItemNumber = 1) AND 
                      (ItemNumber IS NULL) AND (Itemdescrip = @Original_Itemdescrip) OR
                      (UPCBarcode = @Original_UPCBarcode) AND (UPCNumber = @Original_UPCNumber) AND (@IsNull_ItemNumber = 1) AND (ItemNumber IS NULL) AND 
                      (Itemdescrip = @Original_Itemdescrip) OR
                      (UPCBarcode = @Original_UPCBarcode) AND (@IsNull_UPCNumber = 1) AND (UPCNumber IS NULL) AND (ItemNumber = @Original_ItemNumber) AND 
                      (Itemdescrip = @Original_Itemdescrip) OR
                      (UPCBarcode = @Original_UPCBarcode) AND (UPCNumber = @Original_UPCNumber) AND (ItemNumber = @Original_ItemNumber) AND 
                      (Itemdescrip = @Original_Itemdescrip)

他に何を投稿すればよいかわかりません。関連する可能性があると思われるコードが他にもあればお尋ねください。

4

1 に答える 1