0

DB を DataGrid に双方向バインディングする必要があるため、次の方法を使用しています。

    private void SetTable(string tableName)
    {
        var dataGridView1 = new DataGridView { DataSource = GetData(tableName), Dock = DockStyle.Fill };
        groupBox1.Text = tableName;
        groupBox1.Controls.Clear();
        groupBox1.Controls.Add(dataGridView1);
    }

    private static DataTable GetData(string tableName)
    {
        using (var connection = new SqlConnection(ConnectionString))
        {
            var command = new SqlCommand(string.Format("SELECT * FROM {0}", tableName), connection);

            connection.Open();
            var adapter = new SqlDataAdapter(command);
            var result = new DataTable();
            adapter.Fill(result);
            return result;
        }
    }

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        SetTable(comboBox1.Text);
    }

そのため、一方向バインディングがあります。だから私はいくつかの変更を行い、それらをdbに送り返したいと思います。質問は簡単です。手動で行う必要がありますか、それとも L2S の類似物がSubmitChanges()存在しますか? SQL リクエストのみを使用する必要があります。EF なし、L2S なしなど。

DataGridしたがって、変更/追加/削除された行を取得して、データベースで更新したいと思います。2 つのリストを使用し、except クエリを作成した後に手動で行うことはできますが、自動的に取得したいと考えています。

4

1 に答える 1

1

GetChanges()を呼び出して何が変更されたかを判断したり、 TableAdapter を使用して直接更新したりできます。

于 2013-09-21T23:50:33.243 に答える