从SQL表中读取自定义数据

时间:2009-12-17 22:39:29

标签: c# sql datamapper

我们有一个应用程序允许用户向我们的表添加自定义列(可能不是最好的想法,但就是这样)。

我们现在(重新)设计我们的数据访问层(之前我们没有真正拥有过),现在我们将在查询SQL数据库时在我们的数据处理器中使用参数化查询(之前我们连接了SQL字符串)并逃脱了所有输入)。

现在我们正在尝试确定处理自定义列的最佳方法,以便查询,创建和更新这些记录。自定义属性将存储在我们的“业务对象”的字典中,所以我正在考虑这样做:

查询数据

  • 使用SELECT *获取所有列并填充我们的属性,并将其余的(自定义数据)存储在业务对象的字典中。

创建/更新

  • 迭代表中的所有列(类似于:SELECT COLUMN_NAME FROM information_schema.columns WHERE TABLE_NAME ='TableName'
  • 通过检查字典和表中存在哪些列,然后将字典中的值作为变量添加到SQLCommand
  • ,生成SQL字符串(带参数化变量名)

或者在使用参数化查询时还有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

如果要添加ad-hoc列,ORM会变得非常棘手。在某些方面,退回到DataTable / DataAdapter(其中我不是粉丝)可能是一种选择。就个人而言,我会首先看一下存储自定义数据的其他选项:

  • xml
  • 针对每条记录的一组键/值对(在第二张表中)
  • [n]varchar(max)
  • 中的其他分隔格式

你真的需要添加列吗?