已建数据库bk,表sd,字段名:a0,a1,a2,a3,a4,a5,a6...a19(均为char(20))现将数组(string[20] cc)中的值添加到数据库中:bkDataContext db = new bkDataContext(connStr);
sd p = new sd();
for (int i = 0; i <= 20; i++)
{
    string aa = "A" + i.ToString();
    p.????= cc[i]();
}请问:应在[ ???? ]处写什么代码才能自动替换成相应字段?请各位高手赐教!谢谢!

解决方案 »

  1.   

    反射实体设置属性
    System.Reflection.PropertyInfo propertyInfo = targetObj.GetType().GetProperty(fieldsName); 
    propertyInfo.SetValue(targetObj, Enum.ToObject(propertyInfo.PropertyType, reader.GetValue(i)), null); 
      

  2.   

    Linq 吧 建立个索引 
      

  3.   

    #4,
    Relection,正解
    //写几句如何拿到某个Type所有属性的代码
    //sd是楼主的类名.
    Type t = typeof(ds);
    PropertyInfo[] propInfoes = t.GetProperties();
      

  4.   

    首先谢谢各位!
    我就是要进行循环赋值到sd表中的各个字段中:
    for (int i = 0; i <= 20; i++)
    {
      string aa = "a" + i.ToString();  //当i=1时,aa="a1",a1表示字段名
      p.????= cc[i];  //p是表sd(sd是数据表的名称)的一个实体,p.a1表示表sd的a1字段并用cc[1]赋值
    }
    如果直接写成p.aa=cc[i],代码出错;[ ???? ]用什么代码能达到(p.a0=cc[0]、p.a1=cc[1].....)循环赋值到sd表中的各个字段中的效果。
      

  5.   


    p.aa=cc[i],代码出错?
    什么错误?cc[i]是字符串 , 你定义的实体类中aa是什么类型,如果不是string,当然出错了
      

  6.   

    aa是临时生成的字符串(string aa = "a" + i.ToString(); ),用来循环表示sd表中的字段;实体类p中没有aa,我就是要找一种方法:用aa循环替换成实体类p中的a0,a1,a2...等字段。
      

  7.   

    那用反射
    试试:
    System.Reflection.PropertyInfo propertyInfo = p.GetType().GetProperty(aa);  
    propertyInfo.SetValue(p,cc[i], null);