我对c#编程非常陌生,但希望能够访问mysql数据库(没有钱购买ms sql)但是我有一个问题;我知道开发c应用程序需要“mysql connector/net”和“mysql for visual studio”,但是安装应用程序的人也需要它们吗(有没有可能我可以用这个程序释放连接器dll?)谢谢编辑:这两个都是最终用户所必需的,还是仅仅是连接器所必需的?他们还需要什么吗?
pxq42qpu1#
您可以使用包管理器将其添加为包,这是最简单的方法。使用mysql数据库不需要其他任何东西。也可以在包管理器控制台中运行下面的命令
PM> Install-Package MySql.Data
获取mysql.data
bmvo0sr52#
另一个需要考虑的库是mysqlconnector,https://mysqlconnector.net/. mysql.data使用gpl许可证,而mysqlconnector是mit。
r7xajy2e3#
您必须从这里下载mysqlconnection-net。那你需要加上 MySql.Data.DLL 对于msvisualstudio,请执行以下操作:打开菜单项目添加参考浏览到 C:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.12\Assemblies\v4.5.2 添加mysql.data.dll如果您想了解更多信息,请访问:在此处输入链接说明要在代码中使用,必须导入库:
MySql.Data.DLL
C:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.12\Assemblies\v4.5.2
using MySql.Data.MySqlClient;
通过单击事件连接到mysql数据库(无ssl模式)的示例:
using System;using System.Windows;using MySql.Data.MySqlClient;namespace Deportes_WPF{public partial class Login : Window{ private MySqlConnection connection; private string server; private string database; private string user; private string password; private string port; private string connectionString; private string sslM; public Login() { InitializeComponent(); server = "server_name"; database = "database_name"; user = "user_id"; password = "password"; port = "3306"; sslM = "none"; connectionString = String.Format("server={0};port={1};user id={2}; password={3}; database={4}; SslMode={5}", server, port, user, password, database, sslM); connection = new MySqlConnection(connectionString); } private void conexion() { try { connection.Open(); MessageBox.Show("successful connection"); connection.Close(); } catch (MySqlException ex) { MessageBox.Show(ex.Message + connectionString); } } private void btn1_Click(object sender, RoutedEventArgs e) { conexion(); } }}
using System;
using System.Windows;
namespace Deportes_WPF
{
public partial class Login : Window
private MySqlConnection connection;
private string server;
private string database;
private string user;
private string password;
private string port;
private string connectionString;
private string sslM;
public Login()
InitializeComponent();
server = "server_name";
database = "database_name";
user = "user_id";
password = "password";
port = "3306";
sslM = "none";
connectionString = String.Format("server={0};port={1};user id={2}; password={3}; database={4}; SslMode={5}", server, port, user, password, database, sslM);
connection = new MySqlConnection(connectionString);
}
private void conexion()
try
connection.Open();
MessageBox.Show("successful connection");
connection.Close();
catch (MySqlException ex)
MessageBox.Show(ex.Message + connectionString);
private void btn1_Click(object sender, RoutedEventArgs e)
conexion();
rqqzpn5f4#
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); }
private void Initialize()
server = "localhost";
database = "connectcsharptomysql";
uid = "username";
string connectionString;
connectionString = "SERVER=" + server + ";" + "DATABASE=" +
database + ";" + "U`enter code here`ID=" + uid + ";" + "PASSWORD=" + password + ";";
fhity93d5#
看看下面的代码,我试了一下,发现:不是写 DBCon = DBConnection.Instance(); 你应该把 DBConnection DBCon - new DBConnection(); (对我有用)而不是 MySqlComman cmd = new MySqlComman(query, DBCon.GetConnection()); 你应该把 MySqlCommand cmd = new MySqlCommand(query, DBCon.GetConnection()); (缺少d)
DBCon = DBConnection.Instance();
DBConnection DBCon - new DBConnection();
MySqlComman cmd = new MySqlComman(query, DBCon.GetConnection());
MySqlCommand cmd = new MySqlCommand(query, DBCon.GetConnection());
wfauudbj6#
安装oracle的 MySql.Data nuget包。
MySql.Data
using MySql.Data;using MySql.Data.MySqlClient;namespace Data{ public class DBConnection { private DBConnection() { } public string Server { get; set; } public string DatabaseName { get; set; } public string UserName { get; set; } public string Password { get; set; } private MySqlConnection Connection { get; set;} 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={0}; database={1}; UID={2}; password={3}", Server, DatabaseName, UserName, Password); Connection = new MySqlConnection(connstring); Connection.Open(); } return true; } public void Close() { Connection.Close(); } }}
using MySql.Data;
namespace Data
public class DBConnection
private DBConnection()
public string Server { get; set; }
public string DatabaseName { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
private MySqlConnection Connection { get; set;}
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={0}; database={1}; UID={2}; password={3}", Server, DatabaseName, UserName, Password);
Connection = new MySqlConnection(connstring);
Connection.Open();
return true;
public void Close()
Connection.Close();
例子:
var dbCon = DBConnection.Instance();dbCon.Server = "YourServer";dbCon.DatabaseName = "YourDatabase";dbCon.UserName = "YourUsername";dbCon.Password = "YourPassword";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();}
var dbCon = DBConnection.Instance();
dbCon.Server = "YourServer";
dbCon.DatabaseName = "YourDatabase";
dbCon.UserName = "YourUsername";
dbCon.Password = "YourPassword";
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();
6条答案
按热度按时间pxq42qpu1#
您可以使用包管理器将其添加为包,这是最简单的方法。使用mysql数据库不需要其他任何东西。
也可以在包管理器控制台中运行下面的命令
获取mysql.data
bmvo0sr52#
另一个需要考虑的库是mysqlconnector,https://mysqlconnector.net/. mysql.data使用gpl许可证,而mysqlconnector是mit。
r7xajy2e3#
您必须从这里下载mysqlconnection-net。
那你需要加上
MySql.Data.DLL
对于msvisualstudio,请执行以下操作:打开菜单项目
添加
参考
浏览到
C:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.12\Assemblies\v4.5.2
添加mysql.data.dll如果您想了解更多信息,请访问:在此处输入链接说明
要在代码中使用,必须导入库:
通过单击事件连接到mysql数据库(无ssl模式)的示例:
rqqzpn5f4#
fhity93d5#
看看下面的代码,我试了一下,发现:不是写
DBCon = DBConnection.Instance();
你应该把DBConnection DBCon - new DBConnection();
(对我有用)而不是
MySqlComman cmd = new MySqlComman(query, DBCon.GetConnection());
你应该把MySqlCommand cmd = new MySqlCommand(query, DBCon.GetConnection());
(缺少d)wfauudbj6#
安装oracle的
MySql.Data
nuget包。例子: