提交更改纯SqlCommand

时间:2013-09-21 20:17:32

标签: c# .net sql sqlconnection dataprovider

我需要将数据库双向绑定到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个列表,然后进行一个除外查询,但我想自动获取它。

1 个答案:

答案 0 :(得分:1)

您可以致电GetChanges()和/或update directly by using a TableAdapter来确定更改内容。