C# - Connect to MySQL

Code mẫu kết nối C# với MySQL.

Cài đặt các thư viện cần thiết

Sử dụng Nuget Package Manager để cài đặt thư viện MySql.Data

1
Install-Package MySql.Data

1

Hàm kết nối và hủy kết nối đến MySQL

Sử dụng 4 thông số cần thiết để kết nối đến MySQL: Server, tên cơ sở dữ liệu, username và mật khẩu.

12345678910111213141516171819202122232425262728293031323334
using MySql.Data.MySqlClient; MySqlConnection connection; private bool Connect() { const string SERVER = "localhost"; const string DATABASE = "db_shop"; const string UID = "root"; const string PASSWORD = ""; string CONNECTION_STRING = String.Format("SERVER={0};DATABASE={1};UID={2};PASSWORD={3};", SERVER, DATABASE, UID, PASSWORD); this.connection = new MySqlConnection(CONNECTION_STRING); try { connection.Open(); Console.WriteLine("Connected DB"); return true; } catch (Exception e) { Console.WriteLine("Cannot connect DB: " + e.ToString()); return false; } } private void Close() { this.connection.Close(); }

MySqlDataReader / Thêm dữ liệu - Insert - C (CRUD)

Thêm dữ liệu vào cơ sở dữ liệu MySQL và nhận về id vừa thêm, sử dụng ExecuteNonQuery.

12345678910111213
private long Insert(string name, int price, long createdAt, bool isPublished) { string queryString = String.Format("INSERT INTO products(name, price, createdAt, isPublished) VALUES('{0}', {1}, {2}, {3});", name, price, createdAt, isPublished); MySqlCommand command = new MySqlCommand(); command.Connection = connection; command.CommandText = queryString; command.ExecuteNonQuery(); command.CommandText = "SELECT LAST_INSERT_ID()"; return Convert.ToInt64(command.ExecuteScalar()); }

MySqlDataReader / Lấy dữ liệu - Select - R (CRUD)

Lấy dữ liệu trong cơ sở dữ liệu sử dụng ExcecuteReader.

1234567891011121314151617181920212223242526272829
private MySqlDataReader Select() { string queryString = String.Format("SELECT * FROM products"); MySqlCommand command = new MySqlCommand(); command.Connection = connection; command.CommandText = queryString; return command.ExecuteReader(); } private MySqlDataReader Select(long id) { string queryString = String.Format("SELECT * FROM products WHERE id={0}", id); MySqlCommand command = new MySqlCommand(); command.Connection = connection; command.CommandText = queryString; return command.ExecuteReader(); } /* while (reader.Read()) { Console.WriteLine(reader["id"] + " - " + reader["isPublished"]); Console.WriteLine(reader.GetInt64("id") + " - " + reader.GetBoolean("isPublished")); } */

MySqlDataReader / Cập nhật dữ liệu - Update - U (CRUD)

Cập nhật 1 dòng dữ liệu bất kỳ sử dụng ExecuteNonQuery.

12345678910
private bool UpdatePrice(long id, int price) { string queryString = String.Format("UPDATE products SET price={0} WHERE id={1};", price, id); MySqlCommand command = new MySqlCommand(); command.Connection = connection; command.CommandText = queryString; return command.ExecuteNonQuery() == 1; }

MySqlDataReader / Xóa dữ liệu - Delete - D (CRUD)

Xóa 1 dòng dữ liệu sử dụng ExecuteNonQuery.

12345678910
private bool Delete(long id) { string queryString = String.Format("DELETE products id={0};", id); MySqlCommand command = new MySqlCommand(); command.Connection = connection; command.CommandText = queryString; return command.ExecuteNonQuery() == 1; }

MySqlDataAdapter / Lấy dữ liệu - Select - R (CRUD)

123456789101112131415161718192021222324252627282930
private DataSet SelectDS() { this.Connect(); string queryString = String.Format("SELECT * FROM products"); MySqlCommand command = new MySqlCommand(); command.Connection = connection; command.CommandText = queryString; MySqlDataAdapter da = new MySqlDataAdapter(); da.SelectCommand = command; DataSet ds = new DataSet(); da.Fill(ds); da.Dispose(); this.Close(); return ds; } /* DataSet ds = this.SelectDS(); foreach (DataRow row in ds.Tables[0].Rows) { Console.WriteLine(row["name"]); } */