私はdatagridview、C#フォームで10列のdgv1を持っています、それはDBテーブルで囲まれています。 2番目の列は、close/open /の値を持つコンボボックスです。ユーザーは任意のセルの血管を修正することができます。変更が完了したら、Saveボタンを押してDBテーブルへの変更を保存することができます。 変更を保存する前に別のタスクを実行する必要があります.2番目の列の値が変更された場合は、DBストアドプロシージャを呼び出す必要があります。C#でdatagridviewのセル状態を取得する方法
私の問題は、セルの値が変更されたかどうかを知る方法がわからず、以前の値を知る必要があります。以前の値はストアドプロシージャに渡す必要があります。&
foreach (DataRow rows in dtList.Rows)
{
if(rows.RowState.ToString() == "Modified")
{
if(rows.cell(1) is changed)
{
call stored procedure here...
}
}
i++;
}
WinForms、WPFなど?フォーム(WinFormsを前提とする)が初期化/ロードされるときに 'DataGridView'のデータを' DataTable'に格納することができます。次に、「保存」ボタンが押されたときに(バインドされた 'DataTable'に対して)変更をチェックします。 – MoonKnight
KillerCamには素晴らしい提案があります。別の方法は、データベースに関してデルタという用語に精通している場合、Inline DeltaのようなHashTableソートに値を格納することです。これがOracleの場合は、 Old Roew ClickイベントのCurrent Valueをキャプチャしないでください。現在の状態をキャプチャしています。それもそれをキャプチャ変更し、プロパティでそれらを格納する比較.. – MethodMan