[英]C# connection.Open() exception
我试图连接到我的数据库localhost但由于某种原因,它抛出一个异常,我无法找出原因和地点。
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.dll中的异常抛出:'System.Data.SqlClient.SqlException'”。 但它不会崩溃,只是跳过。
如果要打开与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 NET Connector ,然后将项目中的引用添加到程序集MySql.Data.dll(并将使用MySql.Data.MySqlClient添加到需要使用这些类的每个cs文件的顶部)
它没有崩溃,因为你在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.
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.