Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#connection.Open()异常_C#_Mysql - Fatal编程技术网

C#connection.Open()异常

C#connection.Open()异常,c#,mysql,C#,Mysql,我试图连接到本地主机上的数据库,但由于某种原因,它引发了一个异常,我无法找出原因和位置 private void Initialize() { server = "localhost"; database = "dbname"; uid = "uname"; password = "pass"; string connectionString; connectionString = "SERV

我试图连接到本地主机上的数据库,但由于某种原因,它引发了一个异常,我无法找出原因和位置

private void Initialize()
    {
        server = "localhost";
        database = "dbname";
        uid = "uname";
        password = "pass";
        string connectionString;
        connectionString = "SERVER=" + server + ";" + "DATABASE=" +
        database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";

        connection = new SqlConnection(connectionString);
    }
这是我的初始化函数;我的问题是:

    private bool OpenConnection()
    {
        try
        {
            connection.Open();
            return true;
        }
             ...

当我调试程序时,它会在“connection.Open();”行上停留一段时间,然后在控制台上看到“抛出异常:System.Data.SqlClient.SqlException”。但是它没有崩溃,只是跳过了。

它没有崩溃,因为您正在try-catch块内部打开连接,所以程序认为您正在处理异常。如果你想让它崩溃,摆脱try-catch块。(这将是一种糟糕的用户体验。)

或者,在try-catch之后,您可以检查连接是否有效,如果无效,则执行一些操作

if ((connection == null) || (connection.State != ConnectionState.Open)) { 
    /* do something here to indicate to the user there was an issue.
}

如果要打开与MySql的连接,则不使用
System.Data.SqlClient
命名空间中的类,而是使用
MySql.Data.MySqlClient

这些类是MySqlConnection、MySqlCommand、MySqlDataReader等。
如果您尝试使用SqlConnection类,那么如果要打开的数据库是MySql,则会收到此错误,因为它只能与Sql Server、Sql Server Express或LocalDB数据库系统一起使用

connection = new MySqlConnection(connectionString);

当然,要使用MySql.Data.MySqlClient名称空间,您需要下载并安装,然后将安装到项目中的程序集MySql.Data.dll(并将添加到需要使用这些类的每个cs文件的顶部)

该异常是否存在内部异常,以及异常消息是什么?{}你可以选择catch(Exception ex){/*在这里放置断点来查看你的Exception(ex)*/}@hatchet没有其他内容,只有这个。如果你不停止处理这个异常,这是个问题,我从这里开始:一旦你能看到异常的实际情况,你可以给我们更多信息。@MBurnham我有它,只是没有发布。我明白了,问题是我无法打开连接,所以它返回null。但是为什么会发生这种情况,我就是不明白。@osumatu您需要向我们提供异常消息(例如message),以便我们可能回答这个问题。为了理解它返回null的原因,请添加@MBurnham提到的catch块,并查看其中的内容。它应该告诉您凭据是否不正确或者用户没有正确的访问权限。你愿意嫁给我吗?请不要告诉我这需要使用第三方命名空间MySql。默认情况下,.NET Framework中不提供数据。它是由MySqlLOL提供的ADO.NET驱动程序。。。我不知道怎么回答,所以我甚至可以帮你求婚。。。史蒂文:你真幸运……:)@拉胡尔:视情况而定:-)