使用 Mono 的 System.Data.SqlConnection 尝试建立新连接(通过提示用户输入用户名和密码),如果用户多次输入错误的用户名,我得到一个异常:“对象引用未设置为对象的实例“当我在第二次尝试及以后调用 MyConnection.Open() 时。我应该得到一个更详细的异常消息,理想情况下类似于第一个错误响应,它说用户名/密码组合无效或某种程度。
这似乎是一个单声道错误,但我可能是错的。
一些相关细节: Ubuntu 12.04 LTS, 2.10.8.1 出现(来自 synaptic)是安装的 mono-devel 包的版本。
这是一些带有注释的代码,请记住,我从未声称它是好的代码:
protected void LoginClick (object sender, System.EventArgs e)
{
SQLConn = "Data Source=<datasrc goes here>;Initial Catalog=<database name goes here>;User ID=" + UserText.Text + ";Password=" + PassText.Text + ";MultipleActiveResultSets=True;";//the problem is not in the connection string; it logs in right with the right user/pass
MyConnection=null;
try
{
MyConnection = new SqlConnection(SQLConn);
ShowMessage("test1");
MyConnection.Open();
ShowMessage("test2");
...还有更多,但除非我输入有效的用户/密码,否则它永远不会到达 test2 标记,它总是会到达 test1 标记.. ...
}
catch (Exception ex)
{
if (MyConnection!=null){
MyConnection.Close();
}
ShowMessage("Error logging into Database: "+ex.Message);
}
如果您需要了解调试 ShowMessage() 的外观,我将包括它:
public void ShowMessage(string Msg){
Gtk.MessageDialog md=new Gtk.MessageDialog(this,DialogFlags.Modal,MessageType.Error,ButtonsType.Ok,Msg);
md.Run();
md.Destroy();
}
这是我在这里的第一篇文章,如果我使用这个网站错误,请重定向我。
我的问题:我做错了什么,还是应该报告单一项目的错误?