谢谢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,用于返回受影响的记录数。
调用前面的查询代码后,结果如下:
(完)