我的代码上有一个“Kit”对象。
class Kit
{
private int _CK_ID;
public int CK_ID
{
get { return _CK_ID; }
set { _CK_ID = value; }
}
}
在我的代码中我想填写Kit
列表List<Kit> kits = new List<Kit>();
现在我想用db
中的数据填充工具包我有一个解决方案:
将数据带到阅读器,然后循环并将新套件插入列表中。
但我想这样做“很好”我怎么能做这样的事情
kits.fillData();
答案 0 :(得分:2)
这取决于您希望如何构建代码以及您最熟悉的内容,您可以使用Entity Framework或NHibernate之类的内容。
这显然取决于您的框架,任务要求和技能组合。
如果这不是一个选项,您可以根据stored procedure
或select语句显示与Kit
类相同的列名称来执行此操作。
public class KitList : List<Kit>
{
public void FillList()
{
using (SqlConnection con = new SqlConnection(""))
{
var cmd = new SqlCommand("GetData", con);
var dt = new DataTable();
var sda = new SqlDataAdapater(cmd);
sda.Fill(dt);
foreach(var row in dt.Rows)
{
Kit k = new Kit();
foreach(var col in dt.Columns)
{
k.GetType().GetProperty(col.Name).SetValue(obj, row[col.Name], null);
}
this.Add(k);
}
}
}
}
答案 1 :(得分:1)
为此List<Kit>
创建一个扩展方法:
public static void fillData(this List<Kit> kits) { }
然后在里面填充kits
对象。现在,您需要将它放入static
类中,并且您需要将命名空间包含在要使用它的文件的顶部。所以,如果你有这样的代码:
namespace MyApplication.Extensions
{
public static class MyExtensions
{
public static void fillData(this List<Kit> kits) { }
}
}
然后在要添加using
语句的文件中使用它:
using MyApplication.Extensions;
所以当你有List<Kit>
时,你可以这样做:
List<Kit> kits = new List<Kit>();
kits.fillData();
答案 2 :(得分:1)
为什么Kit
对象会自行填充?
您可以实现以下内容:
class KitCollection : List<Kit>
{
public void FillData()
{
Random rnd = new Random();
int i = 10; //let say 10 random data
for (int j = 0; j < 10; j++)
{
Kit kit = new Kit();
kit.CK_ID = rnd.Next(1, 100);
this.Add(kit);
}
}
}
并使用它:
KitCollection list = new KitCollection(); // can be easily cast to List<Kit>
list.FillData();
Random Data
?当然,在这种情况下,您当然可以使用像
private static void FillRandomData(List<Kit> lst)
{
Random rnd = new Random();
int i = 10; //let say 10 random data
for (int j = 0; j < 10; j++)
{
Kit kit = new Kit();
kit.CK_ID = rnd.Next(1, 100);
lst.Add(kit);
}
}