我有一个Windows Installer提示用户输入MySQL信息(服务器,端口,用户名,密码),并希望在完成设置之前确保参数正确。
我有一个安装程序项目,其中自定义操作链接到安装程序类,我正在使用“安装”方法进行错误检查。我的错误发生在catch()
部分。
非常感谢任何建议或意见。
编辑:当我点击[Next]时,安装程序将安装应用程序,然后提示MessageBox(如果有错误),但完成安装。我希望它能够回滚并调出前一个屏幕。
Edit2:从MySqlException捕获的异常是:“无法连接任何指定的MySQL主机”,这是正确的,但安装程序不会返回/回滚。
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
// parameters from installer
// generate connection string conStr
MySqlConnection conn = new MySqlConnection(conStr);
MySqlCommand cmd = new MySqlCommand();
// open connection and create database
try
{
conn.Open();
cmd.Connection = conn;
// create database
// create table
// insert values to test
}
catch (MySqlException ex)
{
//I would like this to go back to the prior page
//where it asks for user input
MessageBox.Show("There was a problem connecting to the database.");
this.Rollback(stateSaver); // not working?
}
// close connection
conn.Close();
}
答案 0 :(得分:1)
要强制回滚当前安装,可以重新抛出异常。你只是在消息框中显示。