用于从 ASP .NET 更新表的动态 SQL

Posted

技术标签:

【中文标题】用于从 ASP .NET 更新表的动态 SQL【英文标题】:Dynamic SQL for updating a table from ASP .NET 【发布时间】:2009-05-29 00:35:57 【问题描述】:

我有一个 ASP.NET 3.5 应用程序,我希望允许用户选择一个表并允许对该表进行 CRUD 操作。用户将被限制在许多表中进行编辑,但是这些表甚至数据库要等到部署之后才能知道; web.config 将设置连接和表。

所以我需要构建一个框架,允许更新 SQL 数据库中的通用表。我见过的大多数 ORM 都需要在编译时知道架构,所以我不能使用这些。最好的答案似乎是动态构建 SQL 查询字符串并使用 reg 表达式来确保有效输入并防止 SQL 注入。有没有更好的办法?

【问题讨论】:

【参考方案1】:

是的。数据集和数据表对象怎么样?您可以通过动态 sql 语句填充这些内容,将它们直接绑定到一个好的编辑器网格控件,并且模式和列数据类型检查应该很容易。在 ORM 和 Linq 之前我们做过什么?!?!

【讨论】:

【参考方案2】:

动态 Linq 库令人难以置信。您可以将所有内容指定为字符串,除了表名。

(来源:scottgu.com)http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx

但是,在这里寻找有关如何通过动态映射 DataContext 在运行时选择表的想法:

http://blogs.microsoft.co.il/blogs/bursteg/archive/2007/09/27/25294.aspx

【讨论】:

以上是关于用于从 ASP .NET 更新表的动态 SQL的主要内容,如果未能解决你的问题,请参考以下文章

动态查询在 asp.net 中不起作用

C# ASP.NET MVC:动态更新视图

Asp.Net, VB, SQL Server Reporting Services..从目录中动态生成的报告要在单击时在报告查看器上查看?

根据 ASP.net 中的模型值动态编辑 SQL 查询

SQL Server:从链接到另一个表的 ID 列动态创建列

Telerik ASP.NET AJAX - 具有动态创建的 Docks 的 Ajax 更新标签