2011-05-09 63 views
0

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

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

回答

0

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

另一种选择是你的ArrayList转换成XML字符串,并将其传递到存储过程与SQL 2000和工作中加强

+0

谢谢,这些都是很好的解决方案。我忘了提及我正在建立一个需要大量工作的类库。这就是为什么我不通过在VisualStudio中拖动所需表而创建存储过程和LinqToSql类的原因。我希望能够使用这个类而不必创建所有这些东西。我将正在构建这个查询,这是我的类缺少的唯一的东西。 – 2011-05-09 18:26:30

0

我传递的主键表名是类的构造函数和我做了场一个必需的参数。这样我可以更容易地构建查询。我知道我一开始就可以做到这一点,我只是想避免为了避免这种情况而必须向课堂传递额外的参数。 Visual Studio中的LinqToSQLdata类使您能够做到这一点。