1. 程式人生 > 其它 >SQL Server 幫助類及使用方式

SQL Server 幫助類及使用方式

幫助類 方法

  //資料庫連線字串(web.config來配置),多資料庫可使用DbHelperSQLP來實現.
        public static readonly string connectionString = ConfigurationManager.AppSettings["connStr"].ToString();
        public SqlDBHelper()
        {
        }


        #region Dapper 操作方法

        /// <summary>
        /// 執行sql  增刪改。
        
/// 示例: /// sql:Insert into Users values (@UserName, @Email, @Address) /// model:new Users(){Email = "123456qq.com",Address = "廣州",UserName = "AAA" } /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sql"></param> /// <param name="t"></param>
/// <returns></returns> public static int Execute<T>(string sql, T t) { using (var connection = new SqlConnection(connectionString)) { int res = connection.Execute(sql, t); return res; } }
/// <summary> /// 執行sql 增刪改 批量。 /// 示例: /// sql:Insert into Users values (@UserName, @Email, @Address) /// model:List<Users> usersList = new List<Users>() { new Users(){Email = "123456qq.com",Address = "廣州",UserName = "AAA" } } /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sql"></param> /// <param name="list"></param> /// <returns></returns> public static int ExecuteBatch<T>(string sql, List<T> list) { using (var connection = new SqlConnection(connectionString)) { int res = connection.Execute(sql, list); return res; } } /// <summary> /// 執行sql 查詢 返回一個結果集 /// 示例: /// sql:select * from Users where UserName=@UserName /// obj:new { UserName = "jack" } /// 多個示例: /// sql:select * from Users where UserID in @Ids /// obj:new { Ids = new int[2] { 5, 6 } } /// /// var args = new DynamicParameters(new { guidList }); /// List<ProductAssistantTab> list = DataAccessLayer.SqlDBHelper.Query<ProductAssistantTab>(strSql.ToString(), args); /// /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sql"></param> /// <param name="obj"></param> /// <returns></returns> public static List<T> Query<T>(string sql, DynamicParameters obj) { using (var connection = new SqlConnection(connectionString)) { var query = connection.Query<T>(sql, obj); return query.ToList(); } } /// <summary> /// 查詢第一行 /// 示例: /// sql:select * from Users where UserName=@UserName /// obj:new { UserName = "jack" } /// 多個示例: /// sql:select * from Users where UserID in @Ids /// obj:new { Ids = new int[2] { 5, 6 } } /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sql"></param> /// <param name="obj"></param> /// <returns></returns> public static T QueryFirstOrDefault<T>(string sql, DynamicParameters obj) { using (var connection = new SqlConnection(connectionString)) { var query = connection.QueryFirstOrDefault<T>(sql, obj); return query; } } #endregion

插入示例:包含單個插入及批量插入

        /// <summary>
        /// 單條新增IOS資料
        /// </summary>
        /// <param name="tab"></param>
        public void AddIOSDataInfo(IosDataTab tab)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("   insert into ios_data_tab(ios_guid,plat_id,analog_dess_model,analog_model,scanbody_dess_model,scanbody_model,create_time) ");
            strSql.Append("   values(@ios_guid,@plat_id,@analog_dess_model,@analog_model,@scanbody_dess_model,@scanbody_model,GETDATE()) ");
            DataAccessLayer.SqlDBHelper.Execute(strSql.ToString(), new
            {
                ios_guid = tab.ios_guid,
                plat_id =tab.plat_id,
                analog_dess_model = tab.analog_dess_model,
                analog_model = tab.analog_model,
                scanbody_dess_model = tab.scanbody_dess_model,
                scanbody_model = tab.scanbody_model

            });
        }

        /// <summary>
        /// 批量插入
        /// </summary>
        /// <param name="tab"></param>
        public void AddIOSDataInfo(List<IosDataTab> tab)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("   insert into ios_data_tab(ios_guid,plat_id,analog_dess_model,analog_model,scanbody_dess_model,scanbody_model,create_time) ");
            strSql.Append("   values(@ios_guid,@plat_id,@analog_dess_model,@analog_model,@scanbody_dess_model,@scanbody_model,GETDATE()) ");
            DataAccessLayer.SqlDBHelper.ExecuteBatch(strSql.ToString(), tab.Select(n=>new IosDataTab {
                ios_guid = n.ios_guid,
                plat_id = n.plat_id,
                analog_dess_model = n.analog_dess_model,
                analog_model = n.analog_model,
                scanbody_dess_model = n.scanbody_dess_model,
                scanbody_model = n.scanbody_model
            }).ToList());
        }

        /// <summary>
        /// 新增產品引數副表資訊
        /// </summary>
        /// <param name="assistantTabs"></param>
        public void AddProductAssistantListInfo(List<ProductAssistantTab> assistantTabs)
        {
            StringBuilder strSql = new StringBuilder();
            List<SqlParameter> sp = new List<SqlParameter>();
            strSql.Append("  insert into product_assistant_tab(relation_id,relation_type,guid,parts_guid) values(@relation_id,@relation_type,@guid,@parts_guid) ");
            DataAccessLayer.SqlDBHelper.ExecuteBatch(strSql.ToString(), assistantTabs);
        }

in 語句查詢

        /// <summary>
        /// 根據guid列表查詢是否有資料
        /// </summary>
        /// <param name="guidList"></param>
        /// <returns></returns>
        public int GetExistsExamineUser(List<string> guidList)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append(" select COUNT(examine_state) as examineCount from product_parameter_tab where  guid in @GuidList and examine_state ='T' ");
            var args = new DynamicParameters(new { guidList });
            int examineCount = DataAccessLayer.SqlDBHelper.QueryFirstOrDefault<int>(strSql.ToString(), args);
            return examineCount;

        }