我正在创建一个简单的小程序,在datagridview中显示一个mysql表,并在按下按钮后在datagridview中编辑数据后将数据保存回表中。
使用mysql表“填充”数据网格视图非常有效。 但按下保存按钮时,我在“更新行”处收到错误。 错误:System.Data.dll中出现未处理的“System.InvalidOperationException”类型异常
用于填写datagridview的代码:
private void roster_Load(object sender, EventArgs e)
{
db_connection();
mySqlDataAdapter = new MySqlDataAdapter("select * from members", connect);
DS = new DataSet();
mySqlDataAdapter.Fill(DS);
dataGridView1.DataSource = DS.Tables[0];
}
和按下保存按钮时的代码:0
private void button1_Click(object sender, EventArgs e)
{
db_connection();
mySqlDataAdapter.Update(DS.Tables[0]);
}
任何人都可以帮我弄清楚它失败的原因吗?
提前致谢。
答案 0 :(得分:0)
当您遇到过于通用的异常时,您可以使用Try/Catch
块并分析InnerException
的{{1}}。例如(VB.NET):
Exception
在这种情况下,您可能只需设置Try
db_connection()
mySqlDataAdapter.Update(DS.Tables(0))
Catch ex As Exception
MsgBox(ex.Message(), MsgBoxStyle.Critical)
If Not IsNothing(ex.InnerException) Then MsgBox(ex.InnerException.Message, MsgBoxStyle.Critical)
End Try
的{{1}},.InsertCommand
和.DeleteCommand
。
请注意,您并不总是需要设置这3个命令;即如果用户无法删除表格中的行,则您不需要设置.UpdateCommand
。