net dapper DynamicParameters

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Data;
using Dapper;
using DapperNETDemo.Utils;

namespace DapperNETDemo
{
    public class Common
    {
        public enum Type
        {
            A,
            B,
            C
        }

        public static IDbConnection OpenConnection()
        {
            IDbConnection connection = new SqlConnection("Data Source=XXXXXX,4124;Initial Catalog=DapperDemoDB;Persist Security Info=True;User ID=dapper;Password=xxxxx");
            connection.Open();
            return connection;
        }
    }
		
    public class DynamicParametersDemo
    {
        static void Main5(string[] args)
        //static void Main(string[] args)
        {
            DynamicParametersDemo client = new DynamicParametersDemo();

            Console.WriteLine("开始执行InsertDapperDemo():");
            DapperDemoEntity dapperDemo = new DapperDemoEntity()
            {
                ParentID = 0,
                DapperDemoName = "上海市",
                Type = Common.Type.C, 
                ModifiedDate = DateTime.Now
            };
            dapperDemo.ID = client.InsertDapperDemo(dapperDemo);          
            if (dapperDemo.ID > 0)
            {
                Console.WriteLine("新增成功:新增记录的ID为{0},ParentID为{1},Name为{2},Type为{3}。", dapperDemo.ID, dapperDemo.ParentID, dapperDemo.DapperDemoName, dapperDemo.Type);
            }
            else
            {
                Console.WriteLine("新增失败。");
            }

            Console.ReadLine();
        }
        
        /// <summary>
        /// 新增单条记录
        /// </summary>
        /// <param name="dapperDemo"></param>
        /// <returns>返回新增的ID</returns>
        public int InsertDapperDemo(DapperDemoEntity dapperDemo)
        {
            using (IDbConnection connection = Common.OpenConnection())
            {
                const string sql =
@"INSERT INTO dbo.DapperNETDemo(ParentID, [Name], [Type], ModifiedDate) VALUES (@ParentID, @DapperDemoName, @Type, @ModifiedDate);
  SELECT CAST(SCOPE_IDENTITY() AS INT)";              

                DynamicParameters dp = new DynamicParameters();
                dp.Add("@ParentID", dapperDemo.ParentID, DbType.Int32);
                //注意:当数据库表字段被设计为char类型时,必须给DbType传值,且必须赋的是DbType.AnsiStringFixedLength,否则数据库访问速度会突然变得很慢。
                dp.Add("@DapperDemoName", dapperDemo.DapperDemoName, DbType.String, ParameterDirection.Input, 100);
                dp.Add("@Type", dapperDemo.Type, DbType.Int32);
                dp.Add("@ModifiedDate", dapperDemo.ModifiedDate, DbType.DateTime);

                int dapperDemoID = connection.Query<int>(sql, dp).Single();
                return dapperDemoID;
            }
        }
    }
}

作者:spike

分类: Net

创作时间:2023-06-25

更新时间:2024-12-09

联系方式放在中括号之中例如[[email protected]],回复评论在开头加上标号例如:#1