0

いい人!ここで 1 つの問題に行き詰まっており、本当に助けが必要です。いくつかのタブがある Winforms アプリケーションがあります。MS SQL Server 2008 DB に接続し、DB に接続する最初のタブに DataGridView を表示します。

private void button_ConnectDB_Click(object sender, EventArgs e)
{
    if (sqlConnection == null || sqlConnection.State != ConnectionState.Open)
        sqlConnection = new SqlConnection(connectionString);
    sqlConnection.Open();
    try
    {
        dataAdapter = new SqlDataAdapter(queryStringUsers, sqlConnection);
        SetConnectDBObjects();
        SetConnectDBButtons();
    }
    catch
    {
        ShowUnableToConnect();
        return;
    }

}

そしてDBからいくつかの情報を持っています:

private void button_SpecAcc_Click(object sender, EventArgs e)
    {
        dataGridView1.DataSource = this.usersBindingSource;
        LoadData(ref dataAdapter, ref clientDataSet, TAB_USERS);
        dataGridView1.ReadOnly = false;
    },

ここで、LoadDataは実際には次のとおりです。

private void LoadData(ref SqlDataAdapter dataAdapter, ref clientDataSet dataset, string table)
    { dataAdapter.Fill(dataset, table); }

dataAdapter を SQL Server に直接接続しているため、自動的に構成されます (INSERT、UPDATE、DELETE などのすべての操作も)。そして、別のタブを作成することを決定するまで、すべてが正常に機能しました(DBに接続し、操作を行い、保存できました(アダプターの更新メソッドを使用する[適用]ボタンを使用))。別のタブで情報を取得する必要があります(いくつかの行) ) 他の場所 (私が接続した外部デバイス) から、それを DataTable に取得し、DB の他の行とマージします

いくつかの行を MERGE しようとすると、DB の素敵で良いUPDATEに表示されますが、最初のタブ (フォーム上) に 2 つの異なる行が表示されます (1 つは触れられていないかのように、2 番目は - まるでそれのように)更新されました。更新 (GridView の更新を試みましたが、役に立ちませんでした)、または他の要素の更新 (しかし、どれですか?...) の何かだと思いましたが、まだ見つかりません。助けていただければ幸いです...ありがとう

4

1 に答える 1

0

一時データセットを作成し、(DataRows を介して) 編集し、データベースに取り込むことで対処します。すべてのウォッチャーに感謝します:)

于 2012-09-05T09:51:52.060 に答える