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;
}
}
答案 0 :(得分:0)
我认为您已使用System.Data.SqlClient.SqlConnection打开连接。 因此,您可以将MultipleActiveResultSets = true属性添加到连接字符串中并尝试此操作。