万金流
以码会友。 吾Q:578751655。 水平有限,轻喷,谢!

谢谢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,用于返回受影响的记录数。

调用前面的查询代码后,结果如下:

 (完)

posted on 2024-04-24 12:29  万金流  阅读(603)  评论(0编辑  收藏  举报