2

使用 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();
}

这是我在这里的第一篇文章,如果我使用这个网站错误,请重定向我。

我的问题:我做错了什么,还是应该报告单一项目的错误?

4

0 回答 0