謝謝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,用於返回受影響的記錄數。
呼叫前面的查詢程式碼後,結果如下:
(完)