我很新來C#編程,但希望能夠訪問MySQL數據庫(沒有MS SQL的錢)如何連接到MySQL數據庫?
但我有一個問題;我知道你需要有用於開發C#應用程序的「MySQL連接器/ NET」和「用於Visual Studio的MySQL」,但安裝應用程序的人是否也需要它們? (難道我只能釋放連接器DLL與程序?)
感謝
編輯:都是他們所需要的最終用戶或只是連接器?他們還有什麼需要的嗎?
我很新來C#編程,但希望能夠訪問MySQL數據庫(沒有MS SQL的錢)如何連接到MySQL數據庫?
但我有一個問題;我知道你需要有用於開發C#應用程序的「MySQL連接器/ NET」和「用於Visual Studio的MySQL」,但安裝應用程序的人是否也需要它們? (難道我只能釋放連接器DLL與程序?)
感謝
編輯:都是他們所需要的最終用戶或只是連接器?他們還有什麼需要的嗎?
您可以使用軟件包管理器將其作爲軟件包添加,它是最簡單的方法。你不需要任何其他的東西來處理mysql數據庫。
或者你可以在下面的命令在軟件包管理控制檯
PM> Install-Package MySql.Data
如果您通過「管理NuGet軟件包」窗口進行搜索,請記住軟件包名稱是**區分大小寫**。對於來自名稱小寫的軟件包管理員的人來說,這可能不是一件明顯的事情。 –
using MySql.Data;
using MySql.Data.MySqlClient;
namespace Data
{
public class DBConnection
{
private DBConnection()
{
}
private string databaseName = string.Empty;
public string DatabaseName
{
get { return databaseName; }
set { databaseName = value; }
}
public string Password { get; set; }
private MySqlConnection connection = null;
public MySqlConnection Connection
{
get { return connection; }
}
private static DBConnection _instance = null;
public static DBConnection Instance()
{
if (_instance == null)
_instance = new DBConnection();
return _instance;
}
public bool IsConnect()
{
if (Connection == null)
{
if (String.IsNullOrEmpty(databaseName))
return false;
string connstring = string.Format("Server=localhost; database={0}; UID=UserName; password=your password", databaseName);
connection = new MySqlConnection(connstring);
connection.Open();
}
return true;
}
public void Close()
{
connection.Close();
}
}
}
實例運行:
var dbCon = DBConnection.Instance();
dbCon.DatabaseName = "YourDatabase";
if (dbCon.IsConnect())
{
//suppose col0 and col1 are defined as VARCHAR in the DB
string query = "SELECT col0,col1 FROM YourTable";
var cmd = new MySqlCommand(query, dbCon.Connection);
var reader = cmd.ExecuteReader();
while(reader.Read())
{
string someStringFromColumnZero = reader.GetString(0);
string someStringFromColumnOne = reader.GetString(1);
Console.WriteLine(someStringFromColumnZero + "," + someStringFromColumnOne);
}
dbCon.Close();
}
如果您可能會遇到互聯網連接問題,並且您想嘗試連接,但這不起作用。刪除'if(_instance == null)'行。默認情況下也會產生'bool result = false',因爲它可能沒有連接到因特網連接問題和其他很多其他問題,不僅因爲數據庫名稱不會被設置。在這種情況下,if(String.IsNullOrEmpty(databaseName)) 返回false;'因爲它只會拋出異常,否則甚至可能返回true,這是不正確的。然而,upvoted,感謝乾淨的代碼。 – Brackets
看一下下面的代碼,我試了一下,結果發現: 而不是寫DBCon = DBConnection.Instance();
你應該把DBConnection DBCon - new DBConnection();
(這爲我工作)
和替代MySqlComman cmd = new MySqlComman(query, DBCon.GetConnection());
你應該把MySqlCommand cmd = new MySqlCommand(query, DBCon.GetConnection());
(它缺少d)
private void Initialize()
{
server = "localhost";
database = "connectcsharptomysql";
uid = "username";
password = "password";
string connectionString;
connectionString = "SERVER=" + server + ";" + "DATABASE=" +
database + ";" + "U`enter code here`ID=" + uid + ";" + "PASSWORD=" + password + ";";
connection = new MySqlConnection(connectionString);
}
您已將此複製自http://www.codeproject.com/Articles/43438/Connect-C-to-MySQL這已經是「bout Hamed Shams」的答案 – Elmue
嘗試這個連接
string Server = "server";
string UserName = "username";
string Password = "password";
string Database = "database";
string Port = "port";
public readonly string config = string.Format("Server = {0}; Port = {1}; Database = {2}; Uid = {3}; Pwd = {4}; pooling = true; Allow Zero Datetime = False; Min Pool Size = 0; Max Pool Size = 200; ", Server, Port, Database, UserName, Password);
using (var con = new MySqlConnection { ConnectionString = config })
{
con.Open();
}
這不會在用戶名或密碼中轉義特殊字符密碼正確;使用'MySqlConnectionStringBuilder'而不是'string.Format'。 –
@BradleyGrainger是的謝謝** MR ** –
是的,所有你需要做的是包與您編程的DLL,在運行程序時它應該已經在您的輸出調試/釋放文件夾中。 – ohmusama
您也可以使用dotConnect組件連接到MySQL。嘗試免費的快遞或試用版 - http://www.devart.com/dotconnect/。 – Devart
注意:用於Visual Studio的MySQL不適用於VS2010E –