저는 C # 프로그래밍을 처음 접했지만 MySQL 데이터베이스에 액세스하고 싶습니다 (MS SQL에 대한 돈이 없음).
그러나 한 가지 질문이 있습니다. C # 응용 프로그램을 개발하려면 “MySQL 커넥터 / NET”및 “MySQL for Visual Studio”가 필요하다는 것을 알고 있지만 응용 프로그램을 설치하는 사람도 필요합니까? (프로그램과 함께 커넥터 DLL을 해제 할 수 있습니까?)
감사
편집 : 둘 다 최종 사용자에게 필요합니까 아니면 커넥터에만 필요합니까? 그들에게 필요한 다른 것이 있습니까?
답변
Oracle의 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();
}
답변
패키지 관리자를 사용하여 패키지로 추가 할 수 있으며 가장 쉬운 방법입니다. mysql 데이터베이스로 작업하기 위해 다른 것이 필요하지 않습니다.
또는 패키지 관리자 콘솔에서 아래 명령을 실행할 수 있습니다.
PM> Install-Package MySql.Data
답변
여기 에서 MySQLConnection NET을 다운로드해야합니다 .
그런 다음 다음 MySql.Data.DLL
과 같이 MSVisualStudio에 추가해야합니다 .
- 메뉴 프로젝트 열기
- 더하다
- 참고
- 찾아보기
C:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.12\Assemblies\v4.5.2
- MySql.Data.dll 추가
더 많은 방문을 알고 싶다면 여기에 링크 설명을 입력하십시오.
코드에서 사용하려면 라이브러리를 가져와야합니다.
using MySql.Data.MySqlClient;
Click 이벤트를 사용 하여 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();
}
}
}
답변
아래의 코드를 보면, 나는 그것을 시도하고 발견 대신 쓰는 DBCon = DBConnection.Instance();
당신이 넣어한다 DBConnection DBCon - new DBConnection();
(나를 위해 일한)
대신 MySqlComman cmd = new MySqlComman(query, DBCon.GetConnection());
넣어야합니다 MySqlCommand cmd = new MySqlCommand(query, DBCon.GetConnection());
(d가 없습니다)
답변
고려해야 할 또 다른 라이브러리는 MySqlConnector, https://mysqlconnector.net/ 입니다. Mysql.Data는 GPL 라이선스하에있는 반면 MySqlConnector는 MIT입니다.
답변
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);
}