国产探花免费观看_亚洲丰满少妇自慰呻吟_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-博客園


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 德州市| 密云县| 临沭县| 广汉市| 伊宁县| 临沂市| 旬邑县| 广昌县| 宜都市| 凤冈县| 乌兰察布市| 鄂尔多斯市| 临朐县| 聊城市| 廊坊市| 徐闻县| 乐昌市| 青州市| 巴林右旗| 沙坪坝区| 济源市| 顺平县| 潞西市| 亳州市| 亚东县| 石家庄市| 长沙县| 平凉市| 乌兰县| 乌兰浩特市| 江华| 淳化县| 宁都县| 台安县| 大悟县| 定兴县| 缙云县| 登封市| 临高县| 潞西市| 咸宁市|