WPF上位机8——C#与MySQL

ADO.NET

WPF上位机8——C#与MySQL_第1张图片

数据库连接

WPF上位机8——C#与MySQL_第2张图片
WPF上位机8——C#与MySQL_第3张图片

数据插入、删除、更改

WPF上位机8——C#与MySQL_第4张图片
WPF上位机8——C#与MySQL_第5张图片

数据查询

WPF上位机8——C#与MySQL_第6张图片
WPF上位机8——C#与MySQL_第7张图片

WPF上位机8——C#与MySQL_第8张图片

带单个参数

WPF上位机8——C#与MySQL_第9张图片
WPF上位机8——C#与MySQL_第10张图片

带多个参数

WPF上位机8——C#与MySQL_第11张图片
WPF上位机8——C#与MySQL_第12张图片

      using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace WpfTest
{
    public class SqlHelper
    {
        private static string constr = ConfigurationManager.ConnectionStrings["db"].ConnectionString;
        /// 
        /// 连接数据库
        /// 
        /// 
        public MySqlConnection? ConnectDatabase()
        {
            MySqlConnection connection = new MySqlConnection(constr);
            connection.Open();
            if (connection != null && connection.State == System.Data.ConnectionState.Open)
            {
                Console.WriteLine("数据库连接成功");
            }
            else
            {
                Console.WriteLine("数据库连接失败");
            }
            return connection;
        }
        /// 
        /// 关闭数据库
        /// 
        /// 
        public void CloseConnection(MySqlConnection mySqlConnection)
        {
            if (mySqlConnection != null && mySqlConnection.State == System.Data.ConnectionState.Open)
            {
                mySqlConnection.Close();
                mySqlConnection = null!;
            }
        }/// 
        /// 执行数据DML(insert,update,delete)操作
        /// 
        /// 

        public void ExecuteUpdate(string? sql)
        {
            var connection = ConnectDatabase();
            MySqlCommand cmd = connection!.CreateCommand();
            cmd.CommandText = sql;
            int row = cmd.ExecuteNonQuery();
            if (row > 0)
            {
                Console.WriteLine("操作成功");
            }
            else
            {
                Console.WriteLine("操作失败");
            }
            CloseConnection(connection);
        }
        /// 
        /// 数据查询的调用模板
        /// 
        public void test()
        {
            MySqlParameter[] parameters = new MySqlParameter[]
            {
                new MySqlParameter("@height",30),
                new MySqlParameter("@width",50),
            };
            string sql = "select * from tb_name where height=@height and width=@width";
            ExecuteQuery(sql, parameters);

        }
        /// 
        /// 数据查询
        /// 
        /// 
        public void ExecuteQuery(string sql, MySqlParameter[] mySqlParameters)
        {
            var connection = ConnectDatabase();
            try
            {
                MySqlCommand mySqlCommand = new MySqlCommand(sql, connection);
                foreach (MySqlParameter param in mySqlParameters)
                {
                    mySqlCommand.Parameters.Add(param);
                }
                MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader();
                while (mySqlDataReader.Read())
                {
                    mySqlDataReader.GetInt32(0);     // 通过列的索引拿到数据
                    mySqlDataReader.GetString("表字段名1");  //通过列的名称拿到数据
                    mySqlDataReader.GetString("表字段名2");
                }
                mySqlDataReader.Close();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                CloseConnection(connection!);
            }


        }

    }
}
 

基于特性+反射+DAO通用操作库

ORM对象关系映射

WPF上位机8——C#与MySQL_第13张图片

数据库中表映射为实体类

WPF上位机8——C#与MySQL_第14张图片
WPF上位机8——C#与MySQL_第15张图片

调用ORM框架中提供的新增方法:构建sql语句

创建枚举

WPF上位机8——C#与MySQL_第16张图片

根据枚举类型创建sql语句

WPF上位机8——C#与MySQL_第17张图片
WPF上位机8——C#与MySQL_第18张图片
WPF上位机8——C#与MySQL_第19张图片
WPF上位机8——C#与MySQL_第20张图片

调用

WPF上位机8——C#与MySQL_第21张图片

实体限定

WPF上位机8——C#与MySQL_第22张图片
WPF上位机8——C#与MySQL_第23张图片
WPF上位机8——C#与MySQL_第24张图片
WPF上位机8——C#与MySQL_第25张图片

生成参数列表

WPF上位机8——C#与MySQL_第26张图片

生成插入的所有方法

WPF上位机8——C#与MySQL_第27张图片
WPF上位机8——C#与MySQL_第28张图片

使用特性映射表名和字段名

WPF上位机8——C#与MySQL_第29张图片
WPF上位机8——C#与MySQL_第30张图片

通过特性获取真实的表名称

WPF上位机8——C#与MySQL_第31张图片
WPF上位机8——C#与MySQL_第32张图片
WPF上位机8——C#与MySQL_第33张图片

当字段名发生更改时会报错,所以给字段也添加特性

WPF上位机8——C#与MySQL_第34张图片
WPF上位机8——C#与MySQL_第35张图片
WPF上位机8——C#与MySQL_第36张图片
WPF上位机8——C#与MySQL_第37张图片

修改的方法

WPF上位机8——C#与MySQL_第38张图片
WPF上位机8——C#与MySQL_第39张图片
WPF上位机8——C#与MySQL_第40张图片
WPF上位机8——C#与MySQL_第41张图片
WPF上位机8——C#与MySQL_第42张图片
WPF上位机8——C#与MySQL_第43张图片
WPF上位机8——C#与MySQL_第44张图片
WPF上位机8——C#与MySQL_第45张图片

你可能感兴趣的:(WPF,mysql)