一文帶你了解C#操作MySql的方法
代碼介紹
功能包含:
- 創(chuàng)建數(shù)據(jù)庫(kù)
- 創(chuàng)建數(shù)據(jù)表
- 批量添加數(shù)據(jù)
- MySql事務(wù)執(zhí)行
- 清表
- 分頁(yè)、模糊查詢(xún)
代碼實(shí)現(xiàn)
創(chuàng)建數(shù)據(jù)庫(kù)
public void CreateDatabase(string sqlStr)
{
string str = $"Server=localhost;User=root;Password=123456;CharSet=UTF8;";
using (MySqlConnection mySqlConnection = new MySqlConnection(mySqlConnection))
{
mySqlConnection.Open();
try
{
MySqlCommand cmd = new MySqlCommand(sqlStr, mySqlConnection);
cmd.ExecuteNonQuery();
} catch(Exception e)
{
Debug.Log(e.Message.ToString());
}
finally
{
mySqlConnection.Close();
}
}
}
創(chuàng)建數(shù)據(jù)表
private static void CteateDataTable(string sqlStr)
{
using (MySqlConnection mySqlConnection = new MySqlConnection(mySqlConnectStr))
{
mySqlConnection.Open();
MySqlCommand cmd = new MySqlCommand(sqlStr, mySqlConnection);
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
mySqlConnection.Close();
}
}
}
查詢(xún)數(shù)據(jù)
private static DataTable SelectTable(string sqlStr)
{
DataTable dt = new DataTable();
using (MySqlConnection mySqlConnection = new MySqlConnection(mySqlConnectStr))
{
mySqlConnection.Open();
try
{
MySqlDataAdapter da = new MySqlDataAdapter(sqlStr, mySqlConnection);
da.Fill(dt);
return dt;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
mySqlConnection.Close();
}
}
}
事務(wù)
private static bool ExecuteSqlTransaction(string sqlStr)
{
using (MySqlConnection mySqlConnection = new MySqlConnection(mySqlConnectStr))
{
mySqlConnection.Open();
MySqlCommand cmd = mySqlConnection.CreateCommand();
cmd.Connection = mySqlConnection;
MySqlTransaction sqlTransaction = mySqlConnection.BeginTransaction();
try
{
cmd.CommandText = sqlStr;
cmd.ExecuteNonQuery();
sqlTransaction.Commit();
sqlTransaction = mySqlConnection.BeginTransaction();
return true;
}
catch (Exception ex)
{
sqlTransaction.Rollback();
return false;
}
finally
{
mySqlConnection.Close();
}
};
}
代碼示例
using MySql.Data.MySqlClient;
using Newtonsoft.Json;
using NPinyin;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.IO;
using System.Text;
namespace ConsoleApp1
{
internal class Program
{
private static string mySqlConnectStr = ConfigurationManager.AppSettings["connectionStr"];
static void Main(string[] args)
{
CreateDatabase("CREATE DATABASE DataBaseName;");
CreateTable();
SQLCMD();
DeleteTableDataAll();
var drugData = SelectTable(@"SELECT * FROM `t_drugs` WHERE t_drugs.drug_name_py LIKE ""%PT%"" LIMIT 1,10;");
List<Drug> drugs = new List<Drug>();
foreach (DataRow item in drugData.Rows)
{
drugs.Add(new Drug
{
hospital_no = item["hospital_no"].ToString(),
hospital_name = item["hospital_name"].ToString(),
drug_id = item["drug_id"].ToString(),
drug_name = item["drug_name"].ToString(),
drug_type = item["drug_type"].ToString(),
drug_short = item["drug_short"].ToString(),
sizes = item["sizes"].ToString(),
unit = item["unit"].ToString(),
price = item["price"].ToString(),
money_type = item["money_type"].ToString(),
producer = item["producer"].ToString(),
dose = item["dose"].ToString(),
usage = item["usage"].ToString(),
summary = item["summary"].ToString(),
ext = item["ext"].ToString(),
});
}
DataTable projectData = SelectTable(@"SELECT * FROM `t_project` WHERE t_project.item_name_py LIKE ""%PT%"" LIMIT 1,10;");
List<Project> project = new List<Project>();
foreach (DataRow item in projectData.Rows)
{
project.Add(new Project
{
hospital_no = item["hospital_no"].ToString(),
hospital_name= item["hospital_name"].ToString(),
item_id = item["item_id"].ToString(),
item_name = item["item_name"].ToString(),
item_type = item["item_type"].ToString(),
item_short = item["item_short"].ToString(),
sizes = item["sizes"].ToString(),
unit = item["unit"].ToString(),
price = item["price"].ToString(),
money_type = item["money_type"].ToString(),
ext = item["ext"].ToString(),
});
}
Console.ReadKey();
}
public void CreateDatabase(string sqlStr)
{
string str = $"Server=localhost;User=root;Password=123456;CharSet=UTF8;";
using (MySqlConnection mySqlConnection = new MySqlConnection(mySqlConnection))
{
mySqlConnection.Open();
try
{
MySqlCommand cmd = new MySqlCommand(sqlStr, mySqlConnection);
cmd.ExecuteNonQuery();
} catch(Exception e)
{
Debug.Log(e.Message.ToString());
}
finally
{
mySqlConnection.Close();
}
}
}
private static DataTable SelectTable(string sqlStr)
{
DataTable dt = new DataTable();
using (MySqlConnection mySqlConnection = new MySqlConnection(mySqlConnectStr))
{
mySqlConnection.Open();
try
{
MySqlDataAdapter da = new MySqlDataAdapter(sqlStr, mySqlConnection);
da.Fill(dt);
return dt;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
mySqlConnection.Close();
}
}
}
/// <summary>
/// 執(zhí)行 插入藥品、項(xiàng)目數(shù)據(jù)
/// </summary>
private static void SQLCMD()
{
#region 藥品
var drugjsonPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"drug.json");
var drugJsonStr = File.ReadAllText(drugjsonPath);
Rootobject<List<Drug>> drugs = JsonConvert.DeserializeObject<Rootobject<List<Drug>>>(drugJsonStr);
string drugSql = @"INSERT INTO T_drugs (drug_id,drug_name,drug_type,sizes,unit,price,money_type,producer) VALUE ";
foreach (var drug in drugs.data)
{
drugSql += $"(\"{drug.drug_id}\",\"{drug.drug_name}\",\"{drug.drug_type}\",\"{drug.sizes}\",\"{drug.unit}\",\"{drug.price}\",\"{drug.money_type}\",\"{drug.producer}\"),";
}
drugSql = $"{drugSql.Remove(drugSql.Length - 1, 1)};";
if (ExecuteSqlTransaction(drugSql))
{
Console.WriteLine("執(zhí)行成功!");
}
else
{
Console.WriteLine("執(zhí)行失??!");
}
#endregion
#region 項(xiàng)目
var projectjsonPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"project.json");
var projectJsonStr = File.ReadAllText(projectjsonPath);
Rootobject<List<Project>> projects = JsonConvert.DeserializeObject<Rootobject<List<Project>>>(projectJsonStr);
string projectSql = @"INSERT INTO T_project (item_id,item_name,unit,price) VALUE ";
foreach (var project in projects.data)
{
projectSql += $"(\"{project.item_id}\",\"{project.item_name}\",\"{project.unit}\",\"{project.price}\"),";
}
projectSql = $"{projectSql.Remove(projectSql.Length - 1, 1)};";
if (ExecuteSqlTransaction(projectSql))
{
Console.WriteLine("執(zhí)行成功!");
}
else
{
Console.WriteLine("執(zhí)行失敗!");
}
#endregion
}
/// <summary>
/// 創(chuàng)建 藥品、項(xiàng)目表
/// </summary>
private static void CreateTable()
{
string t_drugSql = @"USE xzd;
CREATE TABLE IF NOT EXISTS T_drugs
(
`hospital_no` VARCHAR(20),
`hospital_name` VARCHAR(50),
`drug_id` VARCHAR(50),
`drug_name` VARCHAR(50),
`drug_name_py` VARCHAR(50),
`drug_type` VARCHAR(10),
`drug_short` VARCHAR(10),
`sizes` VARCHAR(10),
`unit` VARCHAR(10),
`price` VARCHAR(10),
`money_type` VARCHAR(50),
`producer` VARCHAR(100),
`dose` VARCHAR(10),
`usage` VARCHAR(10),
`summary` VARCHAR(50),
`ext` VARCHAR(50)
)ENGINE=INNODB DEFAULT CHARSET=utf8;";
string t_project = @"USE xzd;
CREATE TABLE IF NOT EXISTS T_project
(
`hospital_no` VARCHAR(20),
`hospital_name` VARCHAR(50),
`item_id` VARCHAR(50),
`item_name` VARCHAR(50),
`item_name_py` VARCHAR(50),
`item_type` VARCHAR(10),
`item_short` VARCHAR(10),
`sizes` VARCHAR(10),
`unit` VARCHAR(30),
`price` VARCHAR(10),
`money_type` VARCHAR(50),
`ext` VARCHAR(50)
)ENGINE=INNODB DEFAULT CHARSET=utf8;";
CteateDataTable(t_drugSql);
CteateDataTable(t_project);
}
/// <summary>
/// 執(zhí)行創(chuàng)建表sql
/// </summary>
/// <param name="sqlStr"></param>
private static void CteateDataTable(string sqlStr)
{
using (MySqlConnection mySqlConnection = new MySqlConnection(mySqlConnectStr))
{
mySqlConnection.Open();
MySqlCommand cmd = new MySqlCommand(sqlStr, mySqlConnection);
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
mySqlConnection.Close();
}
}
}
/// <summary>
/// mysql事務(wù)
/// </summary>
/// <param name="sqlStr"></param>
/// <exception cref="Exception"></exception>
private static bool ExecuteSqlTransaction(string sqlStr)
{
using (MySqlConnection mySqlConnection = new MySqlConnection(mySqlConnectStr))
{
mySqlConnection.Open();
MySqlCommand cmd = mySqlConnection.CreateCommand();
cmd.Connection = mySqlConnection;
MySqlTransaction sqlTransaction = mySqlConnection.BeginTransaction();
try
{
cmd.CommandText = sqlStr;
cmd.ExecuteNonQuery();
sqlTransaction.Commit();
sqlTransaction = mySqlConnection.BeginTransaction();
return true;
}
catch (Exception ex)
{
sqlTransaction.Rollback();
return false;
}
finally
{
mySqlConnection.Close();
}
};
}
/// <summary>
/// 刪除表所有數(shù)據(jù)
/// </summary>
/// <returns></returns>
private static bool DeleteTableDataAll()
{
string sqlStr = @"DELETE FROM T_drugs; DELETE FROM T_project;";
using (MySqlConnection mySqlConnection = new MySqlConnection(mySqlConnectStr))
{
mySqlConnection.Open();
MySqlCommand cmd = new MySqlCommand(sqlStr, mySqlConnection);
try
{
cmd.ExecuteNonQuery();
return true;
}
catch (Exception ex)
{
return false;
throw new Exception(ex.Message);
}
finally
{
mySqlConnection.Close();
}
}
}
}
#region 實(shí)體
/// <summary>
/// 包裝類(lèi)
/// </summary>
/// <typeparam name="T"></typeparam>
public class Rootobject<T>
{
public string code { get; set; }
public T data { get; set; }
}
/// <summary>
/// 藥品
/// </summary>
public class Drug
{
public string hospital_no { get; set; }
public string hospital_name { get; set; }
public string drug_id { get; set; }
public string drug_name { get; set; }
public string drug_type { get; set; }
public string drug_short { get; set; }
public string sizes { get; set; }
public string unit { get; set; }
public string price { get; set; }
public string money_type { get; set; }
public string producer { get; set; }
public string dose { get; set; }
public string usage { get; set; }
public string summary { get; set; }
public string ext { get; set; }
}
/// <summary>
/// 項(xiàng)目
/// </summary>
public class Project
{
public string hospital_no { get; set; }
public string hospital_name { get; set; }
public string item_id { get; set; }
public string item_name { get; set; }
public string item_type { get; set; }
public string item_short { get; set; }
public string sizes { get; set; }
public string unit { get; set; }
public string price { get; set; }
public string money_type { get; set; }
public string ext { get; set; }
}
#endregion
}
到此這篇關(guān)于一文帶你了解C#操作MySql的方法的文章就介紹到這了,更多相關(guān)C#操作MySql內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#引用類(lèi)型和值類(lèi)型的適用場(chǎng)合和區(qū)別
今天小編就為大家分享一篇關(guān)于C#引用類(lèi)型和值類(lèi)型的適用場(chǎng)合和區(qū)別,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01
利用C#實(shí)現(xiàn)批量圖片格式轉(zhuǎn)換功能
這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)批量圖片格式轉(zhuǎn)換功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-12-12
C#中通過(guò)Command模式實(shí)現(xiàn)Redo/Undo方案
這篇文章介紹了C#中通過(guò)Command模式實(shí)現(xiàn)Redo/Undo方案的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
C#中FileSystemWatcher類(lèi)實(shí)現(xiàn)監(jiān)控文件夾
在C#中,如果你想要監(jiān)控一個(gè)文件夾內(nèi)文件的變動(dòng)情況,比如文件的創(chuàng)建、刪除、修改等,你可以使用FileSystemWatcher類(lèi),下面就來(lái)介紹一下FileSystemWatcher監(jiān)控的使用,感興趣的可以了解一下2024-03-03
C#SuperSocket的搭建并配置啟動(dòng)總結(jié)
在本篇文章里我們給大家總結(jié)了關(guān)于C#SuperSocket的搭建并配置啟動(dòng)的相關(guān)內(nèi)容,正在學(xué)習(xí)的朋友們跟著參考下。2019-05-05
C#實(shí)現(xiàn)的滾動(dòng)網(wǎng)頁(yè)截圖功能示例
這篇文章主要介紹了C#實(shí)現(xiàn)的滾動(dòng)網(wǎng)頁(yè)截圖功能,結(jié)合具體實(shí)例形式分析了C#圖形操作的相關(guān)技巧,需要的朋友可以參考下2017-07-07

