我在C#Windows窗体的代码中使用了“try-catch-finally”来查询MySQL数据库。代码运行良好:当catch块标记错误时,消息框将显示错误消息。
在最后一个块中,我编写了一个消息框,它将显示数据库成功更新的时间。
如果没有错误消息,则一切正常。成功消息显示。
但是如果有错误,就会显示catch块中的错误消息,然后显示finally块中的成功消息。
有人知道一个解决方案,让程序在mysql更新时显示错误消息或成功消息吗?
谢谢,
耗尽
下面是一个代码示例:
私有无效btnUpdateEmployeeTable_Click(对象发送方,事件Args e) //更新员工表中的记录 { 字符串 myConnection = @“服务器=本地主机; 数据库=shopdb; 用户名=**; 密码=**; 转换零日期时间=True”;我的连接 = 空;
try
{
Connect = new MySqlConnection(myConnection);
Connect.Open(); //Open the connection
//This is the mysql command that we will query into the db.
//It uses Prepared statements and the Placeholders for faster, more secure processing.
String updateQuery = "UPDATE employee SET emp_lName = @empLastName, emp_fName = @empFirstName WHERE emp_number = @empNum";
MySqlCommand cmdInsertEmployeeToDataBase = new MySqlCommand(updateQuery, Connect);
cmdInsertEmployeeToDataBase.Prepare();
//Bind the value to the placeholder
cmdInsertEmployeeToDataBase.Parameters.AddWithValue("@empNum", this.txtEmployeeNo.Text);
cmdInsertEmployeeToDataBase.Parameters.AddWithValue("@empLastName", this.txtEmployeeLastName.Text);
cmdInsertEmployeeToDataBase.Parameters.AddWithValue("@empFirstName", this.txtEmployeeFirstName.Text);
cmdInsertEmployeeToDataBase.ExecuteNonQuery(); //Execute the mysql command
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + "\nDatabase could not be updated \n" + "Please try again");
}
finally
{
if (Connect != null)
{
Connect.Close(); //Close the connection
}
MessageBox.Show("Database update successful");
}
}
您可以轻松地将成功代码向上移动。如果在MessageBox.Show("数据库更新成功");
行之前抛出异常,那么它将永远不会被执行。
try
{
Connect = new MySqlConnection(myConnection);
Connect.Open(); //Open the connection
//This is the mysql command that we will query into the db.
//It uses Prepared statements and the Placeholders for faster, more secure processing.
String updateQuery = "UPDATE employee SET emp_lName = @empLastName, emp_fName = @empFirstName WHERE emp_number = @empNum";
MySqlCommand cmdInsertEmployeeToDataBase = new MySqlCommand(updateQuery, Connect);
cmdInsertEmployeeToDataBase.Prepare();
//Bind the value to the placeholder
cmdInsertEmployeeToDataBase.Parameters.AddWithValue("@empNum", this.txtEmployeeNo.Text);
cmdInsertEmployeeToDataBase.Parameters.AddWithValue("@empLastName", this.txtEmployeeLastName.Text);
cmdInsertEmployeeToDataBase.Parameters.AddWithValue("@empFirstName", this.txtEmployeeFirstName.Text);
cmdInsertEmployeeToDataBase.ExecuteNonQuery(); //Execute the mysql command
MessageBox.Show("Database update successful");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + "\nDatabase could not be updated \n" + "Please try again");
}
finally
{
if (Connect != null)
{
Connect.Close(); //Close the connection
}
}
问题内容: 是否有任何查询/方式来显示 所有 服务器上执行的最后一个查询? 问题答案: 对于那些拥有MySQL> = 5.1.12的用户,可以在运行时全局控制此选项: 执行 执行 看看桌子 如果您希望输出到文件而不是表: 默认值 。 我更喜欢这种方法来编辑.cnf文件,因为: 您没有编辑文件,并可能永久打开日志记录 您不会在文件系统中四处寻找查询日志-甚至更糟的是,由于需要完美的目的地而分心。 您
问题内容: 除了使用以外,如何检查MySQL查询是否成功 我正在努力实现… 问题答案: 这是手册页中的第一个示例: 如果您想使用其他以外的东西,我建议。
现在,这个问题不是关于MySQL查询、结果行或与数据库本身相关的任何内容,而是关于MySQL Workbench程序。 我在程序中打开了数十个表格(包括更改表格和编辑行/列),并且一次只能在UI中看到大约10个标签,因为它们只有一行。使用左右箭头显示更多标签非常缓慢和烦人。 那么,有没有什么方法可以显示多行标签或者以某种方式增加它们的空间?偏好与它无关,除了字体和搜索网络只会返回毫无意义的东西。
问题内容: 我有两个通过1:1关系连接的实体,例如: 我想创建一个Doctrine查询,在其中我可以根据中某个列的值检索数据。像这样的东西(当然不起作用): 任何帮助将非常感激 :) 问题答案: 左连接在这里也没有意义(因为where子句将使它像内部连接一样工作)
有些函数需要很长时间才能执行。我想让用户用进度条等待。不幸的是,当我运行这个函数时,它只在函数结束时运行,而不是在我想要的时候。让我解释一下,我使用“sendloading()”方法启动进度条,但在测试期间,该进度条仅在处理其他函数“copyAssets”或“createOnClicBtnInsert()”后显示。有人能解释一下原因吗? 这是我的代码: 以下是我的进度条代码:
本文向大家介绍MySql中如何使用 explain 查询 SQL 的执行计划,包括了MySql中如何使用 explain 查询 SQL 的执行计划的使用技巧和注意事项,需要的朋友参考一下 explain命令是查看查询优化器如何决定执行查询的主要方法。 这个功能有局限性,并不总会说出真相,但它的输出是可以获取的最好信息,值得花时间去了解,因为可以学习到查询是如何执行的。 1、什么是MySQL执行计划