我正在使用DataGridView,我想从网格中更新我的表。我得到了错误"多个基表不支持动态SQL生成"使用DataAdapter.Update(dataTable)时。原因是我通过加入2个表填充了我的dataTable。
这是我用来从网格更新数据库的功能。
private void button2_Click(object sender, EventArgs e)
{
dataGridView2.EndEdit();
//da.Update(dataTable);
OleDbCommand com = new OleDbCommand();
com.Connection = connection;
com.CommandText = "update Name_Corpus2 set EngWord = @EngWord where ID = @ID";
com.Parameters.Add("@ID", OleDbType.Integer, 32, "ID");
com.Parameters.Add("@EngWord", OleDbType.VarChar, 64, "EngWord");
da.UpdateCommand = com;
da.Update(dataTable);
MessageBox.Show("Updated");
bind(classification, language);
}
据我所知,我必须创建自己的查询来从网格中更新表格。我想知道如何以及在何处输入代码以自动生成更新查询。
答案 0 :(得分:0)
这是我更新的自动生成更新查询的函数,通过从OleDB命令切换到SqlCommand并为其添加命令文本和参数。谢谢@Steve
private void button2_Click(object sender, EventArgs e)
{
dataGridView2.EndEdit();
SqlCommand com = new SqlCommand();
com.Connection = con;
com.Parameters.Add("@EngWord", SqlDbType.NVarChar, 256, "EngWord");
com.Parameters.Add("@ID", SqlDbType.Int, 32, "ID");
com.CommandText = "update Name_Corpus2 set EngWord = @EngWord where ID = @ID";
da.UpdateCommand = com;
da.Update(dataTable);
MessageBox.Show("Updated");
bind(classification, language);
}