現在の状況では、多くの人が毎日同時に変更を加える必要があるデータバインドされたデータグリッドビューがあります。グリッドは保存および更新できる必要がありますが、非常にアクティブであるため、正しく機能していません。
シナリオは次のとおりです。
- 3人が同時にグリッドフォームを開きます。
 - 3つの異なる行のデータに変更を加えます。
 - 個人1は変更を保存し、成功します。
 - Person 2は変更を保存して成功しますが、Person 2のグリッドが、Person 1が送信したばかりのデータと同期されていないため、Person1の変更はなくなりました。
 - 人物3は変更を保存し、人物3のデータグリッドビューが更新されたデータと同期されなかったため、人物1と2が行ったことをすべて消去します。
 
私は最初にこのアプローチを試しました:
    private MySqlDataAdapter da;
    private MySqlConnection conn;
    BindingSource bs = new BindingSource();
    DataSet ds = null;
    string qry;
    string ConnString = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];
    // THE LOAD METHOD
    private void LoadDataToGrid(string srcTable, string query)
    {
        conn = new MySqlConnection(ConnString);
        // ADD ANY QUERY
        qry = query;
        da = new MySqlDataAdapter(qry, conn);
        conn.Open();
        ds = new DataSet();
        MySqlCommandBuilder cb = new MySqlCommandBuilder(da);
        // USE TABLE NAME
        da.Fill(ds, srcTable);
        //USE TABLE NAME
        bs.DataSource = ds.Tables[srcTable];
        dataGridView1.DataSource = bs;
        // CUSTOMIZE GRID
        txtRows.Text = dataGridView1.Rows.Count.ToString();
        dataGridView1.AutoResizeColumns();
        dataGridView1.AllowUserToDeleteRows = false;
    }
    // THE SAVE METHOD
    private void SaveDataFromGrid(string srcTable)
    {
        // USE TABLE NAME
        DataTable dt = ds.Tables[srcTable];
        this.dataGridView1.BindingContext[dt].EndCurrentEdit();
        this.da.Update(dt);
        txtRows.Text = dataGridView1.Rows.Count.ToString();
    }
上記の理由により、これはうまくいきませんでした。データが正しく保存されていませんでした。
これが私の2番目の考えでしたが、それでも上記の問題に悩まされています。
   // Load event
   dataGridView1.DataSource = context.TableName;
   // btnSave_click Event
   connection.open();
       // loop through cells in current row and apply changes by id
   context.tableName.Attach(DataFromGrid);
   context.ObjectStateManager.ChangeObjectState(DataFromGrid, System.Data.EntityState.Modified);
   context.savechanges();
基本的に、この切断の問題をどのように解決できますか?誰かが以前にこの問題を抱えたことはありますか?