2, Dapper use

1, describes the table structure:

1) curriculum

2) results table

3) Student table 

 2, the database connection factory class obtain

We need to add System.Configuration reference and MySql.Data.MySqlClient

namespace db
{
    /// <summary>
    /// 数据库连接工厂
    /// </summary>
    public class dbFactory
    {
        public static string connStr = ConfigurationManager.ConnectionStrings["dbConn"].ConnectionString;
        private static string prividerName = ConfigurationManager.ConnectionStrings["dbConn"].ProviderName;

        public static IDbConnection createConn()
        {
            IDbConnection conn = null;
            switch (prividerName)
            {
                case "System.Data.SqlClient":
                    conn = new SqlConnection(connStr);
                    break;
                case "MySql.Data.MySqlClient":
                    conn = new MySqlConnection(connStr);
                    break;
            }
            return conn;
        }
    }
}

 3, the model class definition

namespace db.model
{
    public class Couser
    {
        public int id { get; set; }
        public string courseName { get; set; }
    }
    public partial class Score
    {
        public int id { get; set; }
        public int score { get; set; }
        public int courseId { get; set; }
        public int studentId { get; set; }
    }
    public partial class Student
    {
        public int id { get; set; }
        public string name { get; set; }
        public int sex { get; set; }
        public string tel { get; set; }
        public string other { get; set; }
    }
}

 

4, the package needs to be introduced

using Dapper;
using DapperExtensions;
using db.model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Data.SqlClient;
using System.Text;

 

5, an example of the use of correlation

        // query a single entity 
        public  static Couser Query () 
        { 
            the using (Conn the IDbConnection = db.dbFactory.createConn ()) 
            { 
                Console.WriteLine (conn.State); 
                // native written 
                String SQL = " the SELECT * WHERE the FROM dbo.Course @ ID = ID " ; 
                Couser MODEL1 = conn.QueryFirstOrDefault <Couser> (SQL, new new {= ID . 1 }); 
                Console.WriteLine (conn.State); 
                return MODEL1; 
            } 
        } 

        // filter query like manner. 1 
        public static List<Couser> queryWhere1(string courseName)
        {
            using (IDbConnection conn = db.dbFactory.createConn())
            {
                //原生写法 模糊查询1
                string sql = " SELECT * FROM dbo.Course where charindex(@courseName,courseName)>0 ";
                List<Couser> list = conn.Query<Couser>(sql, new { courseName = courseName }).ToList();
                return list;
            }
        }

        //过滤查询like方式2
        public static List<Couser> queryWhere2(string courseName)
        {
            using (IDbConnection conn = db.dbFactory.createConn())
            {
                //原生写法 模糊查询2
                string sql = " SELECT * FROM dbo.Course where courseName like @courseName ";
                List<int> idList = new List<int>();
                List<Couser> list = conn.Query<Couser>(sql, new { courseName = $"%{courseName}%" }).ToList();
                return list;
            }
        }

        //in 查询
        public static List<Couser> queryWhere3()
        {
            List<int> idList = new List<int>();
            idList.Add(1);
            idList.Add(2);
            idList.Add(3);
            idList.Add(4);

            using (IDbConnection conn = db.dbFactory.createConn())
            {
                //原生写法 模糊查询2
                string sql = " SELECT * FROM dbo.Course where id in @id ";
                List<Couser> list = conn.Query<Couser>(sql, new { id = idList }).ToList();
                return list;
            }
        }

        //查询所有
        public static List<Couser> queryAll()
        {
            using (IDbConnection conn = db.dbFactory.createConn())
            {
                //原生写法
                string sql = " SELECT * FROM dbo.Course ";
                List<Couser> list = conn.Query<Couser>(sql).ToList();
                return list;
            }
        }

        //新增
        public static void insert()
        {
            using (IDbConnection conn = db.dbFactory.createConn())
            {
                db.model.Couser model = new Couser();
                model.courseName = "数据库原理";
                Console.WriteLine(conn.State);
                //原生写法
                string sql = " INSERT INTO dbo.Course(courseName ) VALUES (@courseName) ";
                conn.Execute(sql, model);
                Console.WriteLine(conn.State);

            }
        }

        //批量新增
        public static void insertBatch()
        {
            using (IDbConnection conn = db.dbFactory.createConn())
            {
                List<Couser> list = new List<Couser>();
                list.Add(new Couser { courseName = "Batch1" });
                list.Add(new Couser { courseName = "Batch2" });

                Console.WriteLine(conn.State);
                //原生写法
                string sql = " INSERT INTO dbo.Course(courseName ) VALUES (@courseName) ";
                conn.Execute(sql, list);
                Console.WriteLine(conn.State);

            }
        }

        //修改
        public static void update()
        {
            using (IDbConnection conn = dbFactory.createConn())
            {
                db.model.Couser model = new Couser();
                model.id = 5;
                model.courseName = "数据库原理1";
                //原生写法
                string sql = " UPDATE dbo.Course SET courseName=@courseName WHERE id=@id ";
                conn.Execute(sql, model);
            }
        }

        //删除
        public static void delete()
        {
            using (IDbConnection conn = dbFactory.createConn())
            {
                string sql = " DELETE FROM dbo.Course WHERE id=@id ";
                conn.Execute(sql, new { id = 6 });
            }
        }

        //事务控制
        public static void testTran()
        {
            using (IDbConnection conn = dbFactory.createConn())
            {
                conn.Open();
                IDbTransaction ts = conn.BeginTransaction();
                try
                {
                    string sql1 = " DELETE FROM dbo.Course WHERE id=@id ";
                    conn.Execute(sql1, new { id = 5 }, ts);

                    string sql2 = " INSERT INTO dbo.Course(id, courseName ) VALUES  (N'4', N'sdfsfd') ";
                    conn.Execute(sql2, new { id = 6 }, ts);

                    ts.Commit();
                }
                catch (Exception ex)
                {
                    ts.Rollback();
                }
                finally
                {
                    conn.Close();
                }
            }
        }

 

Guess you like

Origin www.cnblogs.com/feihusurfer/p/10932355.html