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

首頁 > 編程 > .NET > 正文

asp.net 反射減少代碼書寫量

2020-01-17 23:52:43
字體:
供稿:網(wǎng)友

 

復(fù)制代碼 代碼如下:

public bool Add(Liuyan refmodel)
    {
        string sql = "insert into liuyan(name,phone,zhiwei,gongsi,addr,country,dianyou,content,adddate)values(@name,@phone,@zhiwei,@gongsi,@addr,@country,@dianyou,@content,@adddate)";
        OleDbParameter[] parameters ={
            new OleDbParameter("@name",OleDbType.VarChar),
            new OleDbParameter("@tel",OleDbType.VarChar),
            new OleDbParameter("@zhiwei",OleDbType.VarChar),
            new OleDbParameter("@gongsi",OleDbType.VarChar),
            new OleDbParameter("@addr",OleDbType.VarChar),
            new OleDbParameter("@country",OleDbType.VarChar),
            new OleDbParameter("@dianyou",OleDbType.VarChar),
            new OleDbParameter("@content",OleDbType.VarChar),
            new OleDbParameter("@adddate",OleDbType.VarChar)
        };
        parameters[0].Value=model.Xingming;
        parameters[1].Value=model.Tel;
        parameters[2].Value=model.Zhiwei;
        parameters[3].Value=model.Gongsi;
        parameters[4].Value=model.Addr;
        parameters[5].Value=model.Country;
        parameters[6].Value=model.Dianyou;
        parameters[7].Value=model.Content;
        parameters[8].Value=model.Adddate;
        return sqlHelper.executeCommand(sql, parameters);
    }
 

本文講反射 現(xiàn)在就說在這段代碼的哪個(gè)位置使用反射 只是本人編碼過程中為了省勁突發(fā)奇想
復(fù)制代碼 代碼如下:

   parameters[0].Value=model.Xingming;
        parameters[1].Value=model.Tel;
        parameters[2].Value=model.Zhiwei;
        parameters[3].Value=model.Gongsi;
        parameters[4].Value=model.Addr;
        parameters[5].Value=model.Country;
        parameters[6].Value=model.Dianyou;
        parameters[7].Value=model.Content;
        parameters[8].Value=model.Adddate;

  當(dāng)類里有很多屬性的時(shí)候上面這段代碼可以使用反射來賦值
  

 
復(fù)制代碼 代碼如下:
    
//使用反射記得引用using System.Reflection;命名空間

     Type t = refmodel.GetType();
       for (int i = 0; i < t.GetProperties().Length; i++)
        {
            parameters[i].Value= t.GetProperties()[i].GetValue(refmodel, null);
        }


這里使用反射來獲取類的所有屬性
然后遍歷屬性并把遍歷到的屬性值賦給參數(shù)
當(dāng)然這里是添加的方法沒有model.Id
所以for循環(huán)的時(shí)候要從1開始
然后 parameters[i].Value賦值的時(shí)候i要減一  parameters[i-1].Value
這樣以后寫數(shù)據(jù)層的時(shí)候給參數(shù)賦值就不用苦逼的一個(gè)一個(gè)復(fù)制粘貼了
怎么樣 個(gè)人小心得和大家分享
使用代碼生成工具的可以無視啦

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 武鸣县| SHOW| 老河口市| 南宫市| 拉萨市| 武功县| 英山县| 阳原县| 溧水县| 顺义区| 枣庄市| 衡南县| 敦化市| 奉贤区| 天峻县| 石嘴山市| 宝兴县| 拉萨市| 达日县| 盐池县| 扎兰屯市| 伽师县| 芦溪县| 五原县| 永德县| 通辽市| 虞城县| 龙口市| 上高县| 潢川县| 乌鲁木齐县| 邵阳县| 三门峡市| 溧阳市| 手机| 镇康县| 康保县| 枣强县| 扎鲁特旗| 莎车县| 高阳县|