net dapper ExecuteScalar Demo

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

using DapperNETDemo.Utils;
using Dapper;

namespace DapperNETDemo
{
    public class ExecuteScalarDemo
    {
        static void Main4(string[] args)
        //static void Main(string[] args)
        {
            ExecuteScalarDemo client = new ExecuteScalarDemo();
            object expectedResult;
            int result = -1;

            #region 泛型ExecuteScalar方法的使用

            Console.WriteLine("开始执行GetChildDapperDemoCount():");
            expectedResult = (long)client.UseGenericExecuteScalar<long>("bigint");
            Console.WriteLine("执行成功:结果为{0},类型为{1}。", expectedResult, expectedResult.GetType().Name);
            Console.ReadLine();

            #endregion

            Console.WriteLine("=======");

            #region 非泛型ExecuteScalar方法的使用

            Console.WriteLine("开始执行GetChildDapperDemoCount():");
            result = client.GetChildDapperDemoCount();
            Console.WriteLine("执行成功:共有{0}条Child DapperDemo记录。", result);
            Console.ReadLine();

            #endregion
        }

        /// <summary>
        /// 泛型ExecuteScalar方法的使用
        /// </summary>
        /// <typeparam name="T"></typeparam>      
        /// <param name="dbType"></param>
        /// <returns></returns>
        public T UseGenericExecuteScalar<T>(string dbType)
        {
            using (IDbConnection connection = Common.OpenConnection())
            {
                T scalar = connection.ExecuteScalar<T>("SELECT CAST(1 AS " + dbType + ")");
                return scalar;
            }
        }

        /// <summary>
        /// 非泛型ExecuteScalar方法的使用
        /// </summary>
        /// <returns></returns>
        public int GetChildDapperDemoCount()
        {
            using (IDbConnection connection = Common.OpenConnection())
            {
                const string sql = 
@"SELECT COUNT(child.ID)
FROM dbo.DapperNETDemo child WITH(NOLOCK)
LEFT JOIN dbo.DapperNETDemo parent WITH(NOLOCK) ON parent.ID = child.ParentID
WHERE parent.ID IS NOT NULL";
                return (int)connection.ExecuteScalar(sql);
            }
        }
    }
}


作者:spike

分类: Net

创作时间:2023-06-25

更新时间:2024-12-09

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