从DataGridView中的多个/连接表更新TableAdapter

时间:2013-12-15 03:21:04

标签: c# sql datagridview

Dynamic SQL generation is not supported against multiple base tables.

更新多个&时发生使用DataGridView方法在SqlDataAdapter.Update()中加入了表格。如何解决我想直接从DataGridView更新数据的情况?

这是一些代码(假设连接到DB):

System.Data.SqlClient.SqlDataAdapter da;
DataTable dt;
SqlCommandBuilder cb;

private void Form1_Load(object sender, EventArgs e)
    {
        string sql = "SELECT * FROM table1 CROSS JOIN table2 WHERE table2.Id = table1.Id";

        da = new System.Data.SqlClient.SqlDataAdapter(sql, db.con);
        dt = new DataTable();

        da.Fill(dt);

        dataGridView1.DataSource = dt;
    }

private void updateDataGridView() 
    {
        try
        {
            cb = new SqlCommandBuilder(da);
            da.Update(dt);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
            return;
        }
    }

1 个答案:

答案 0 :(得分:0)

我认为您已使用System.Data.SqlClient.SqlConnection打开连接。 因此,您可以将MultipleActiveResultSets = true属性添加到连接字符串中并尝试此操作。