C#訪問MySql原始版

万金流發表於2024-04-24

謝謝sqlpub提供的免費mysql環境!!

本文演示了C#使用ADO.NET訪問MySql的原始寫法。旨在初學者順利入門。

MySql.Data.MySqlClient由nuget獲得,vs2022,.net8除錯透過。

我的部落格的資料庫操作類,也是基於這些基本操作封裝而來。

程式碼如下:

 1 using MySql.Data.MySqlClient;
 2 using System.Data;
 3 
 4 namespace ConsoleApp1
 5 {
 6     internal class Program
 7     {
 8         static void Main(string[] args)
 9         {
10             //初始化各種引數
11             var db_name = "資料庫名稱";
12             var ip_add = "伺服器域名或ip";
13             var port = "";
14             var user_name = "使用者名稱";
15             var user_pass = "密碼";
16             //設定連線字串
17             var s1 = $"Database={db_name};Data Source={ip_add};port ={port};User Id={user_name};Password={user_pass};allow zero datetime=true; Charset = utf8;Allow User Variables = True";
18             
19             //
20             var conn=new MySqlConnection(s1);
21             //
22             MySqlDataAdapter myda;            
23             //訂單
24             string mysql_text = "select * from t1";
25             //路、車、訂單匹配
26             myda= new MySqlDataAdapter(mysql_text,conn);
27 
28             //貨箱
29             DataSet myds = new DataSet();
30             //存放查詢結果的表
31             DataTable dt;
32 
33             try
34             {
35                 //開啟道路
36                 conn.Open();
37                 //資料裝箱
38                 myda.Fill(myds, "No1");
39                 conn.Close();
40             }
41             catch (Exception e1)
42             {
43                 Console.WriteLine(e1.Message);
44             }
45 
46             //從貨箱取出資料,裝在表裡
47             dt = myds.Tables["No1"] ?? new DataTable();
48             //顯示
49             for (int j = 0; j < dt.Columns.Count; j++)
50             {
51                 Console.Write(dt.Columns[j].ColumnName + "\t");
52             }
53             Console.WriteLine();
54             for (int i = 0; i < dt.Rows.Count; i++)
55             {
56                 for (int j = 0; j < dt.Columns.Count; j++)
57                 {
58                     Console.Write(dt.Rows[i][j].ToString() + "\t");
59                 }
60                 Console.WriteLine();
61             }
62         }
63     }
64 }

執行結果:

對於增刪改,需要修改命令和車(由資料介面卡改為命令),其餘變動不大。

修改部分程式碼如下:

 1 //命令
 2 string mysql_text = "insert into t1 values('yxl',25)";
 3 //車,組裝路和命令
 4 var mycomm = new MySqlCommand(mysql_text, conn);
 5 
 6 try
 7 {
 8     int c;
 9     conn.Open();
10     c = mycomm.ExecuteNonQuery();
11     conn.Close();
12 }
13 catch (Exception e1)
14 {
15     Console.WriteLine(e1.Message);
16 }

第八行的c,用於返回受影響的記錄數。

呼叫前面的查詢程式碼後,結果如下:

(完)

相關文章