Arraylist对象数据库记录清理

时间:2011-05-09 18:15:00

标签: c# .net database ado.net

我有一个名为Vendors的表格。我还创建了一个名为Vendor的类,以便我可以用供应商对象填充ListView。假设该表包含两列(Name和Phone),因此我的类Vendor包含这两个字符串属性。如果我有一个供应商对象的ArrayList,并且我希望删除数据库中的供应商,我怎么能在不构建查询的情况下执行此操作?

我正在构建一个类来根据我传递给该类构造函数的任何查询动态填充listview。然后,该类创建一个SqlDataReader对象来循环遍历记录。根据有多少列,它们将动态添加到列表视图中。唯一的问题是,当我想删除所选行时(如果参考上面的例子,所选行将是供应商对象的集合),有时我会在构建查询时遇到错误。有时一些列为空,我不知道哪个列将是主键。此外,类供应商基于查询的结果动态构造。一切都很棒。我知道我可以创建一个linqToSqlClass或者可以将它绑定到数据集。如果我不必修改这个类,那将是很好的。也许当我循环记录时,有一些方法可以找到该行的主键。

2 个答案:

答案 0 :(得分:0)

如果您使用的是SQL 2008,则可以创建一个接受Table-Valued parameter的过程。

另一种选择是将您的ArrayList转换为XML字符串并将其传递给存储过程与SQL 2000及更高版本一起使用

答案 1 :(得分:0)

我将主键表名称传递给该类的构造函数,并使该字段成为必需参数。这样我就可以更轻松地构建查询。我知道我可以在开始时这样做我只是想避免必须将额外的参数传递给类,如果不知何故我可以防止这种情况。 Visual Studio中的LinqToSQLdata类使您能够做到这一点。