C#操作MySql的方法是什么

数据库   发布日期:2023年09月09日   浏览次数:565

这篇文章主要讲解了“C#操作MySql的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#操作MySql的方法是什么”吧!

    代码介绍

    功能包含:

    • 创建数据库

    • 创建数据表

    • 批量添加数据

    • MySql事务执行

    • 清表

    • 分页、模糊查询

    代码实现

    创建数据库

    1. public void CreateDatabase(string sqlStr)
    2. {
    3. string str = $"Server=localhost;User=root;Password=123456;CharSet=UTF8;";
    4. using (MySqlConnection mySqlConnection = new MySqlConnection(mySqlConnection))
    5. {
    6. mySqlConnection.Open();
    7. try
    8. {
    9. MySqlCommand cmd = new MySqlCommand(sqlStr, mySqlConnection);
    10. cmd.ExecuteNonQuery();
    11. } catch(Exception e)
    12. {
    13. Debug.Log(e.Message.ToString());
    14. }
    15. finally
    16. {
    17. mySqlConnection.Close();
    18. }
    19. }
    20. }

    创建数据表

    1. private static void CteateDataTable(string sqlStr)
    2. {
    3. using (MySqlConnection mySqlConnection = new MySqlConnection(mySqlConnectStr))
    4. {
    5. mySqlConnection.Open();
    6. MySqlCommand cmd = new MySqlCommand(sqlStr, mySqlConnection);
    7. try
    8. {
    9. cmd.ExecuteNonQuery();
    10. }
    11. catch (Exception ex)
    12. {
    13. throw new Exception(ex.Message);
    14. }
    15. finally
    16. {
    17. mySqlConnection.Close();
    18. }
    19. }
    20. }

    查询数据

    1. private static DataTable SelectTable(string sqlStr)
    2. {
    3. DataTable dt = new DataTable();
    4. using (MySqlConnection mySqlConnection = new MySqlConnection(mySqlConnectStr))
    5. {
    6. mySqlConnection.Open();
    7. try
    8. {
    9. MySqlDataAdapter da = new MySqlDataAdapter(sqlStr, mySqlConnection);
    10. da.Fill(dt);
    11. return dt;
    12. }
    13. catch (Exception ex)
    14. {
    15. throw new Exception(ex.Message);
    16. }
    17. finally
    18. {
    19. mySqlConnection.Close();
    20. }
    21. }
    22. }

    事务

    1. private static bool ExecuteSqlTransaction(string sqlStr)
    2. {
    3. using (MySqlConnection mySqlConnection = new MySqlConnection(mySqlConnectStr))
    4. {
    5. mySqlConnection.Open();
    6. MySqlCommand cmd = mySqlConnection.CreateCommand();
    7. cmd.Connection = mySqlConnection;
    8. MySqlTransaction sqlTransaction = mySqlConnection.BeginTransaction();
    9. try
    10. {
    11. cmd.CommandText = sqlStr;
    12. cmd.ExecuteNonQuery();
    13. sqlTransaction.Commit();
    14. sqlTransaction = mySqlConnection.BeginTransaction();
    15. return true;
    16. }
    17. catch (Exception ex)
    18. {
    19. sqlTransaction.Rollback();
    20. return false;
    21. }
    22. finally
    23. {
    24. mySqlConnection.Close();
    25. }
    26. };
    27. }

    代码示例

    1. using MySql.Data.MySqlClient;
    2. using Newtonsoft.Json;
    3. using NPinyin;
    4. using System;
    5. using System.Collections.Generic;
    6. using System.Configuration;
    7. using System.Data;
    8. using System.IO;
    9. using System.Text;
    10. namespace ConsoleApp1
    11. {
    12. internal class Program
    13. {
    14. private static string mySqlConnectStr = ConfigurationManager.AppSettings["connectionStr"];
    15. static void Main(string[] args)
    16. {
    17. CreateDatabase("CREATE DATABASE DataBaseName;");
    18. CreateTable();
    19. SQLCMD();
    20. DeleteTableDataAll();
    21. var drugData = SelectTable(@"SELECT * FROM `t_drugs` WHERE t_drugs.drug_name_py LIKE ""%PT%"" LIMIT 1,10;");
    22. List<Drug> drugs = new List<Drug>();
    23. foreach (DataRow item in drugData.Rows)
    24. {
    25. drugs.Add(new Drug
    26. {
    27. hospital_no = item["hospital_no"].ToString(),
    28. hospital_name = item["hospital_name"].ToString(),
    29. drug_id = item["drug_id"].ToString(),
    30. drug_name = item["drug_name"].ToString(),
    31. drug_type = item["drug_type"].ToString(),
    32. drug_short = item["drug_short"].ToString(),
    33. sizes = item["sizes"].ToString(),
    34. unit = item["unit"].ToString(),
    35. price = item["price"].ToString(),
    36. money_type = item["money_type"].ToString(),
    37. producer = item["producer"].ToString(),
    38. dose = item["dose"].ToString(),
    39. usage = item["usage"].ToString(),
    40. summary = item["summary"].ToString(),
    41. ext = item["ext"].ToString(),
    42. });
    43. }
    44. DataTable projectData = SelectTable(@"SELECT * FROM `t_project` WHERE t_project.item_name_py LIKE ""%PT%"" LIMIT 1,10;");
    45. List<Project> project = new List<Project>();
    46. foreach (DataRow item in projectData.Rows)
    47. {
    48. project.Add(new Project
    49. {
    50. hospital_no = item["hospital_no"].ToString(),
    51. hospital_name= item["hospital_name"].ToString(),
    52. item_id = item["item_id"].ToString(),
    53. item_name = item["item_name"].ToString(),
    54. item_type = item["item_type"].ToString(),
    55. item_short = item["item_short"].ToString(),
    56. sizes = item["sizes"].ToString(),
    57. unit = item["unit"].ToString(),
    58. price = item["price"].ToString(),
    59. money_type = item["money_type"].ToString(),
    60. ext = item["ext"].ToString(),
    61. });
    62. }
    63. Console.ReadKey();
    64. }
    65. public void CreateDatabase(string sqlStr)
    66. {
    67. string str = $"Server=localhost;User=root;Password=123456;CharSet=UTF8;";
    68. using (MySqlConnection mySqlConnection = new MySqlConnection(mySqlConnection))
    69. {
    70. mySqlConnection.Open();
    71. try
    72. {
    73. MySqlCommand cmd = new MySqlCommand(sqlStr, mySqlConnection);
    74. cmd.ExecuteNonQuery();
    75. } catch(Exception e)
    76. {
    77. Debug.Log(e.Message.ToString());
    78. }
    79. finally
    80. {
    81. mySqlConnection.Close();
    82. }
    83. }
    84. }
    85. private static DataTable SelectTable(string sqlStr)
    86. {
    87. DataTable dt = new DataTable();
    88. using (MySqlConnection mySqlConnection = new MySqlConnection(mySqlConnectStr))
    89. {
    90. mySqlConnection.Open();
    91. try
    92. {
    93. MySqlDataAdapter da = new MySqlDataAdapter(sqlStr, mySqlConnection);
    94. da.Fill(dt);
    95. return dt;
    96. }
    97. catch (Exception ex)
    98. {
    99. throw new Exception(ex.Message);
    100. }
    101. finally
    102. {
    103. mySqlConnection.Close();
    104. }
    105. }
    106. }
    107. /// <summary>
    108. /// 执行 插入药品、项目数据
    109. /// </summary>
    110. private static void SQLCMD()
    111. {
    112. #region 药品
    113. var drugjsonPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"drug.json");
    114. var drugJsonStr = File.ReadAllText(drugjsonPath);
    115. Rootobject<List<Drug>> drugs = JsonConvert.DeserializeObject<Rootobject<List<Drug>>>(drugJsonStr);
    116. string drugSql = @"INSERT INTO T_drugs (drug_id,drug_name,drug_type,sizes,unit,price,money_type,producer) VALUE ";
    117. foreach (var drug in drugs.data)
    118. {
    119. drugSql += $"("{drug.drug_id}","{drug.drug_name}","{drug.drug_type}","{drug.sizes}","{drug.unit}","{drug.price}","{drug.money_type}","{drug.producer}"),";
    120. }
    121. drugSql = $"{drugSql.Remove(drugSql.Length - 1, 1)};";
    122. if (ExecuteSqlTransaction(drugSql))
    123. {
    124. Console.WriteLine("执行成功!");
    125. }
    126. else
    127. {
    128. Console.WriteLine("执行失败!");
    129. }
    130. #endregion
    131. #region 项目
    132. var projectjsonPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"project.json");
    133. var projectJsonStr = File.ReadAllText(projectjsonPath);
    134. Rootobject<List<Project>> projects = JsonConvert.DeserializeObject<Rootobject<List<Project>>>(projectJsonStr);
    135. string projectSql = @"INSERT INTO T_project (item_id,item_name,unit,price) VALUE ";
    136. foreach (var project in projects.data)
    137. {
    138. projectSql += $"("{project.item_id}","{project.item_name}","{project.unit}","{project.price}"),";
    139. }
    140. projectSql = $"{projectSql.Remove(projectSql.Length - 1, 1)};";
    141. if (ExecuteSqlTransaction(projectSql))
    142. {
    143. Console.WriteLine("执行成功!");
    144. }
    145. else
    146. {
    147. Console.WriteLine("执行失败!");
    148. }
    149. #endregion
    150. }
    151. /// <summary>
    152. /// 创建 药品、项目表
    153. /// </summary>
    154. private static void CreateTable()
    155. {
    156. string t_drugSql = @"USE xzd;
    157. CREATE TABLE IF NOT EXISTS T_drugs
    158. (
    159. `hospital_no` VARCHAR(20),
    160. `hospital_name` VARCHAR(50),
    161. `drug_id` VARCHAR(50),
    162. `drug_name` VARCHAR(50),
    163. `drug_name_py` VARCHAR(50),
    164. `drug_type` VARCHAR(10),
    165. `drug_short` VARCHAR(10),
    166. `sizes` VARCHAR(10),
    167. `unit` VARCHAR(10),
    168. `price` VARCHAR(10),
    169. `money_type` VARCHAR(50),
    170. `producer` VARCHAR(100),
    171. `dose` VARCHAR(10),
    172. `usage` VARCHAR(10),
    173. `summary` VARCHAR(50),
    174. `ext` VARCHAR(50)
    175. )ENGINE=INNODB DEFAULT CHARSET=utf8;";
    176. string t_project = @"USE xzd;
    177. CREATE TABLE IF NOT EXISTS T_project
    178. (
    179. `hospital_no` VARCHAR(20),
    180. `hospital_name` VARCHAR(50),
    181. `item_id` VARCHAR(50),
    182. `item_name` VARCHAR(50),
    183. `item_name_py` VARCHAR(50),
    184. `item_type` VARCHAR(10),
    185. `item_short` VARCHAR(10),
    186. `sizes` VARCHAR(10),
    187. `unit` VARCHAR(30),
    188. `price` VARCHAR(10),
    189. `money_type` VARCHAR(50),
    190. `ext` VARCHAR(50)
    191. )ENGINE=INNODB DEFAULT CHARSET=utf8;";
    192. CteateDataTable(t_drugSql);
    193. CteateDataTable(t_project);
    194. }
    195. /// <summary>
    196. /// 执行创建表sql
    197. /// </summary>
    198. /// <param name="sqlStr"></param>
    199. private static void CteateDataTable(string sqlStr)
    200. {
    201. using (MySqlConnection mySqlConnection = new MySqlConnection(mySqlConnectStr))
    202. {
    203. mySqlConnection.Open();
    204. MySqlCommand cmd = new MySqlCommand(sqlStr, mySqlConnection);
    205. try
    206. {
    207. cmd.ExecuteNonQuery();
    208. }
    209. catch (Exception ex)
    210. {
    211. throw new Exception(ex.Message);
    212. }
    213. finally
    214. {
    215. mySqlConnection.Close();
    216. }
    217. }
    218. }
    219. /// <summary>
    220. /// mysql事务
    221. /// </summary>
    222. /// <param name="sqlStr"></param>
    223. /// <exception cref="Exception"></exception>
    224. private static bool ExecuteSqlTransaction(string sqlStr)
    225. {
    226. using (MySqlConnection mySqlConnection = new MySqlConnection(mySqlConnectStr))
    227. {
    228. mySqlConnection.Open();
    229. MySqlCommand cmd = mySqlConnection.CreateCommand();
    230. cmd.Connection = mySqlConnection;
    231. MySqlTransaction sqlTransaction = mySqlConnection.BeginTransaction();
    232. try
    233. {
    234. cmd.CommandText = sqlStr;
    235. cmd.ExecuteNonQuery();
    236. sqlTransaction.Commit();
    237. sqlTransaction = mySqlConnection.BeginTransaction();
    238. return true;
    239. }
    240. catch (Exception ex)
    241. {
    242. sqlTransaction.Rollback();
    243. return false;
    244. }
    245. finally
    246. {
    247. mySqlConnection.Close();
    248. }
    249. };
    250. }
    251. /// <summary>
    252. /// 删除表所有数据
    253. /// </summary>
    254. /// <returns></returns>
    255. private static bool DeleteTableDataAll()
    256. {
    257. string sqlStr = @"DELETE FROM T_drugs; DELETE FROM T_project;";
    258. using (MySqlConnection mySqlConnection = new MySqlConnection(mySqlConnectStr))
    259. {
    260. mySqlConnection.Open();
    261. MySqlCommand cmd = new MySqlCommand(sqlStr, mySqlConnection);
    262. try
    263. {
    264. cmd.ExecuteNonQuery();
    265. return true;

    以上就是C#操作MySql的方法是什么的详细内容,更多关于C#操作MySql的方法是什么的资料请关注九品源码其它相关文章!