[英]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.