MySQL基礎知識学習 - ADO.NETでデータベース接続、SQL文実行(追加、削除、変更、クエリ)を実現 (7)

HeidiSQL はデータベース、テーブル、必須フィールドを作成します

create database studb;
use studb;
create table tb_stu
(
stuId int auto_increment primary key comment '主键',
stuName varchar(20) unique not null comment '学生姓名',
stuGender char(1) not null comment '性别',
stuAge int check(stuAge>16 and stuAge<120) not null,
stuBirthday date not null
);

「実行」をクリックして
ここに画像の説明を挿入
実行結果を作成します
ここに画像の説明を挿入

ADO.NET の概要

ADO.NET は、Microsoft テクノロジのデータにアクセスするための COM コンポーネントのライブラリです。コンソール プログラムを作成し、NuGet で MySql.Data を参照する

ここに画像の説明を挿入
プロジェクトをダブルクリックして参照を追加します

<ItemGroup>
		<PackageReference Include="MySql.Data" Version="8.0.32" />
	</ItemGroup>

ここに画像の説明を挿入

データベース接続とアクセス

データベース接続性

  public static void ConnectionDataBase()
        {
    
    
            string connectionstr = "Server=localhost;port=3306;Database=studb;Uid=root;Pwd=Yiqing7717";
            //创建连接MySQL客户端对象
            MySqlConnection mySqlConnection = new MySqlConnection(connectionstr);
            //打开连接
            mySqlConnection.Open();
            if (mySqlConnection != null && mySqlConnection.State == ConnectionState.Open)
            {
    
    
                Console.WriteLine("MySQL连接成功");
            }
        }

ここに画像の説明を挿入

データ挿入

       /// <summary>
        /// 储存数据
        /// </summary>
        public static void ExecuteInsert()
        {
    
    
            try
            {
    
    
                //获取连接对象
                var connection = ConnectionDataBase();
                //通过连接对象创建命令对象
                MySqlCommand mySqlCommand = connection!.CreateCommand();
                //设置命令对象执行的命令文本--sql语句
                string insertstr = "insert into tb_stu (stuName,stuGender,stuAge,stuBirthday) values ('王五','男',23,'1920-11-22') ";
                mySqlCommand.CommandText = insertstr;
                //执行sql命令
                int row = mySqlCommand.ExecuteNonQuery();
                if (row > 0)
                {
    
    
                    Console.WriteLine("添加成功");
                }
                else
                {
    
    
                    Console.WriteLine("添加失败");
                }
            }
            catch (Exception er)
            {
    
    

                Console.WriteLine(er.Message.ToString());
            }
           
        }

ここに画像の説明を挿入

方法1

       ///数据库访问语句
       private static readonly string ConnectString = "Server=localhost;port=3306;Database=studb;Uid=root;Pwd=123456";
       ///测试
        public static void TestADOCRUD()
        {
    
    
            // 测试数据库连接是否正常
            ConnectDatabase();
            // 测试数据查询操作
            string insertSql = "insert into tb_stu (stuName,stuGender,stuAge,stuBirthday) values ('李四','男',23,'1920-11-22')";
            ExecuteUpdate(insertSql);
            // 测试数据修改操作
            string updateSql = "update tb_stu set stuGender='女',stuAge=33 where stuId=1";
            ExecuteUpdate(updateSql);
            // 测试数据删除操作
            string deleteSql = "delete from tb_stu where stuId=1";
            ExecuteUpdate(deleteSql);  
        }
        /// <summary>
        /// 1、连接MySQL数据库
        /// </summary>
        public static MySqlConnection? ConnectDatabase()
        {
    
    
             
            // 创建连接MySql客户端对象
            MySqlConnection connection = new MySqlConnection(ConnectString);
            // 打开连接
            connection.Open();
            // 判断连接对象的状态
            if (connection != null && connection.State == ConnectionState.Open)
            {
    
    
                Console.WriteLine("连接上MySql数据库");
            }
            else
            {
    
    
                Console.WriteLine("连接MySql失败");
            }
            return connection;
        }
        ///执行sql语句
         public static void ExecuteUpdate(string? sql)
        {
    
    
            // 2.1 获取连接对象
            var connection = ConnectDatabase();
            try
            {
    
    

                // 2.2 通过连接对象创建命令对象
                MySqlCommand cmd = connection!.CreateCommand();
                // 2.3 设置命令对象执行的命令文本【sql语句】

                cmd.CommandText = sql;
                // 2.4 执行SQL命令
                int row = cmd.ExecuteNonQuery();
                // 2.5 处理返回结果
                if (row > 0)
                {
    
    
                    Console.WriteLine("操作成功");
                }
                else
                {
    
    
                    Console.WriteLine("操作失败");
                }
            }
            finally
            {
    
    
                // 关闭连接
                CloseConnection(connection!);
            }

        }
        /// <summary>
        /// 关闭连接对象的方法
        /// </summary>
        public static void CloseConnection(MySqlConnection connection)
        {
    
    
            if (connection != null && connection.State == ConnectionState.Open)
            {
    
    
                // 关闭连接对象
                connection.Close();
                // 把连接对象置空
                connection = null!;
            }
        }

方法 2

         public static void TestADOCRUD()
        {
    
                
            MySqlParameter[] sqlParameter = new MySqlParameter[] 
            {
    
    
                new MySqlParameter("@stuId",3),
                new MySqlParameter("@stuName","王五"),
            };

            ExecuteQuery("select * from tb_stu where stuId=@stuId and stuName=@stuName", sqlParameter);
        }
        /// <summary>
        /// 3、执行Sql查询操作
        /// </summary>
        public static void ExecuteQuery(string sql,params MySqlParameter[] parameters)
        {
    
    
            // 3.1 获取连接对象
            var connection = ConnectDatabase();
            try
            {
    
    
                //3.2 创建命令对象
                MySqlCommand command = new MySqlCommand(sql, connection);
                // 设置参数
                foreach (var parameter in parameters)
                {
    
    
                    command.Parameters.Add(parameter);
                }
                //3.3 通过命令对象执行Sql语句返回数据读取器
                MySqlDataReader dataReader = command.ExecuteReader();
                Console.WriteLine("编号\t姓名\t年龄\t性别\t生日");
                // 3.4 获取读取器中的数据
                while (dataReader.Read())
                {
    
    
                    // 获取行中每一个列中的数据
                    // 可以通过列的索引或者列的名称
                    Console.WriteLine($"{
      
      dataReader.GetInt32(0)}\t" +
                        $"{
      
      dataReader.GetString("stuName")}" +
                        $"\t{
      
      dataReader.GetInt32("stuAge")}\t" +
                        $"{
      
      dataReader.GetString("stuGender")}\t" +
                        $"{
      
      dataReader.GetDateTime("stuBirthday")}");
                }
                // 关闭阅读器对象
                dataReader.Close();
            }
            finally
            {
    
    
                // 关闭连接
                CloseConnection(connection!);
            }
        }

おすすめ

転載: blog.csdn.net/weixin_45496521/article/details/129025427