国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

【亂寫代碼坑人系列】小插曲(一):將類的所有屬性添加為SqlCommand的參數

2019-11-17 02:22:49
字體:
來源:轉載
供稿:網友

【亂寫代碼坑人系列】小插曲(一):將類的所有屬性添加為SqlCommand的參數

小插曲(一)將類的所有屬性添加為SqlCommand的參數

  在使用SqlCommand 執行存儲過程時,如果存儲過程需要參數,就必須將每個參數都輸進去,雖然說可以使用AddWithValue 方法,但參數多時仍舊有些麻煩。

  在需要將類的所有屬性作為參數時,可以通過反射獲取這個類所有的屬性和值,并直接添加到參數中。

  不過需要注意的是,必須保證類的屬性名和參數名相同(不區分大小寫),順序無所謂。

  

1         PRivate void SetSqlParameters<T>(SqlCommand cmd, T model)2             where T : class3         {4             foreach (PropertyInfo prop in 5                 model.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public))6             {7                 cmd.Parameters.AddWithValue("@" + prop.Name, prop.GetValue(model, null));8             }9         }

  可以看出,這個函數中使用了一個循環來遍歷所有屬性,并使用GetValue 方法來獲得相應的值,之后只需用一句話就可以將所有的屬性加入參數列表中。

 1         public Building FindBuilding(Building building) 2         { 3             using (SqlConnection con = new SqlConnection(AppConnectionString)) 4             { 5                 SqlCommand cmd = new SqlCommand("FindBuilding", con); 6                 cmd.CommandType = CommandType.StoredProcedure; 7                 SetSqlParameters<Building>(cmd, building); 8  9                 con.Open();10                 SqlDataReader reader = cmd.ExecuteReader();11                 if (reader.Read())12                     return new Building13                         (14                             (string)reader["BldgName"],15                             (int)reader["RoomNum"]16                         );17 18                 return null;19             }20         }

  轉載請注明出處:LzxHahaha-博客園


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 灵川县| 香河县| 固镇县| 独山县| 高雄县| 鄂州市| 剑川县| 志丹县| 九龙城区| 沙坪坝区| 昌都县| 麻栗坡县| 金昌市| 巩留县| 耿马| 荆州市| 邵武市| 双流县| 阿尔山市| 新丰县| 枣庄市| 临颍县| 凌源市| 天等县| 张家川| 方正县| 航空| 建宁县| 南召县| 汨罗市| 邓州市| 洛浦县| 古浪县| 荥经县| 阳东县| 河源市| 江北区| 永康市| 呈贡县| 九台市| 漠河县|