【发布时间】:2014-10-06 18:19:09
【问题描述】:
如果学生已经分配了当前插入到mysql数据库中的位置,我如何显示错误消息,然后回滚事务?
如果分配了不同的位置,它应该继续检查下一行。
这是我的插入代码:
conn.Open();
MySqlTransaction mt = conn.BeginTransaction();
try {
for (int cnt = 0; cnt <= lv1.Items.Count - 1; cnt++) {
if (lv1.Items[cnt].SubItems[3].Text == " ")
continue;
string query = "insert into candidate(pid,s_id)values(@pid,@sid)";
MySqlCommand cmd = new MySqlCommand(query, conn);
cmd.Parameters.Add(new MySqlParameter("@pid", lv1.Items[cnt].SubItems[0].Text ));
cmd.Parameters.Add(new MySqlParameter("@sid", lv1.Items[cnt].SubItems[2].Text));
cmd.Transaction = mt;
cmd.ExecuteNonQuery();
}
mt.Commit();
} catch (Exception error) {
MessageBox.Show(error.Message);
mt.Rollback();
}
conn.Close();
这是我的虚拟学生表:
这是我的虚拟位置表:
这是我的虚拟候选表:
这是我的列表视图控件示例:
【问题讨论】:
-
MessageBox.Show(error.Message);不适合你吗? -
这个问题的问题是至少有3个。关于如何显示错误消息的一个问题。另一个问题是关于如何回滚数据库事务。第三个问题是关于如何编写算法来完成这一切。
-
@Sam 我是,我的主要问题是如果学生已经被分配了“那个”位置,我将如何显示错误消息或仅显示消息。你提到的最后两个问题。 . .与第一个相比只是一个小问题... xD
标签: c# mysql user-interaction