SQL Server 幫助類及使用方式
阿新 • • 發佈:2021-10-27
幫助類 方法
//資料庫連線字串(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; }