2017-04-17 188 views
0

大家好, 我需要在项目中插入数据库,但是在数据库中有195列,所以我想用对象和类输入存储过程参数为了使这个工作更容易,在c#端使用逻辑。通过属性名称获取循环中的对象值c#

我已经很容易地获得了为数据库排序创建的类的属性名称,但是我很难填充它们的值。

public class StokItem 
    { 
      public int prop1 { get; set; } 
      public short prop2 { get; set; } 
      public int prop3 { get; set; } 
      ..... 
 } 

程序代码

String [] propNamestypeof = typeOf (StokItem) .GetProperties(). Select (p => p.Name) .ToArray(); 

StokItem item = new StokItem(); 
Item.prop1 = blablabla 
Item.prop2 = asddsad; 
... 
. 
. 

 For (int i = 0; i <195; i ++) { 
     ScCommand.Parameters.AddWithValue ("@" + propNamestypeof [i], XXXXX); 
       } 

含义XXXX;索引i中属性的值是obgen的值(我正在填充它)

我的意思是我该如何为具有这么多字段的表执行此操作item.propNamestypeOf [i]实际上是想要去做,但它不接受它?

回答

1

下面的代码可能会帮助你

StokItem item = new StokItem(); 
item.prop1 = 123; 
item.prop2 = 456; 
... 

foreach (var prop in item.GetType().GetProperties()) 
{ 
    //string propertyName = prop.Name; 
    //var propertyValue = prop.GetValue(item); 
    ScCommand.Parameters.AddWithValue ("@" + prop.Name, prop.GetValue(item)); 
} 
+0

非常感谢您为我要找的! –