日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

SQLSERVER单表CRUD通用方法

發布時間:2025/3/21 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQLSERVER单表CRUD通用方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、適用場景

  ①當你書寫簡單的增刪改查心累了

  ②當你的項目不考慮并發、高性能

  ③當你追求更快速的開發效率

  ④當你的業務只涉及單表

二、代碼展示

  ①單表Insert

1 public bool Insert<T>(T t) 2 { 3 var o = t.GetType(); 4 var sBulider = new StringBuilder("insert into "); 5 sBulider.Append("[" + o.Name + "]"); 6 sBulider.Append("("); 7 var properties = o.GetProperties(); 8 foreach (var p in properties) 9 { 10 sBulider.Append(p.Name); 11 sBulider.Append(","); 12 } 13 sBulider.Length--; 14 sBulider.Append(") values("); 15 foreach (var p in properties) 16 { 17 sBulider.AppendFormat("'{0}'", p.GetValue(t, null)); 18 sBulider.Append(","); 19 } 20 sBulider.Length--; 21 sBulider.Append(")"); 22 return SqlDBHelper.ExecuteSql(sBulider.ToString()) > 0; 23 } View Code

  ②單表Delete

1 public bool Delete<T>(string idList) where T : new() 2 { 3 var tableName = new T().GetType().Name; 4 var ids = new StringBuilder(); 5 foreach (var id in idList.Split(',')) 6 { 7 ids.Append("'"); 8 ids.Append(id); 9 ids.Append("',"); 10 } 11 ids.Length--; 12 var sql = string.Format("delete from [{0}] where Id in ({1})", tableName, ids.ToString()); 13 return SqlDBHelper.ExecuteSql(sql) > 0; 14 } View Code

  ③單表Update

1 public bool Update<T>(T t) 2 { 3 var o = t.GetType(); 4 var sBulider = new StringBuilder("update "); 5 sBulider.Append("[" + o.Name + "]"); 6 sBulider.Append(" set "); 7 var id = ""; 8 var properties = o.GetProperties(); 9 foreach (var p in properties) 10 { 11 var columnName = p.Name; 12 var columnValue = p.GetValue(t, null); 13 if (columnName == "Id") 14 id = columnValue.ToString(); 15 sBulider.Append(columnName); 16 sBulider.AppendFormat("='{0}'", columnValue); 17 sBulider.Append(","); 18 } 19 sBulider.Length--; 20 sBulider.AppendFormat("where Id='{0}'", id); 21 return SqlDBHelper.ExecuteSql(sBulider.ToString()) > 0; 22 } View Code

  ④單表Select

1 public List<T> SerarchList<T>(string where = "") where T : new() 2 { 3 var tableName = new T().GetType().Name; 4 var sqlString = new StringBuilder(); 5 sqlString.AppendFormat("select * from [{0}]", tableName); 6 if (!string.IsNullOrEmpty(where)) 7 { 8 sqlString.AppendFormat(" where '{0}'", where); 9 } 10 var list = new List<T>(); 11 using (var dataReader = SqlDBHelper.ExecuteReader(sqlString.ToString())) 12 { 13 while (dataReader.Read()) 14 { 15 var t = new T(); 16 var properties = t.GetType().GetProperties(); 17 foreach (var p in properties) 18 { 19 p.SetValue(t, dataReader[p.Name], null); 20 } 21 list.Add(t); 22 } 23 } 24 return list; 25 } View Code

三、局限性

  ①實體類名字必須和表名一致

  ②主鍵名必須為Id

  ③不適合自增型主鍵

  ④出現問題難以調試(可以添加日志跟蹤)

  ⑤安全性低(暴漏字段名)

  ⑥實現分頁太暴力

  ⑦靈活性低(通用和靈活永遠的矛盾體)

  ⑧Update操作時會全表更新

  ⑨Select操作會全字段查詢

四、源碼下載

  sourcecode

?

轉載于:https://www.cnblogs.com/surfing/p/5018126.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的SQLSERVER单表CRUD通用方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。