从ASP.net应用程序运行SQL语句

时间:2009-12-08 00:45:44

标签: c# asp.net sql sql-server-2005 tsql

我需要从应用程序本身运行sql语句。即用户可以进入asp.net applciation,获取一个框并可以从那里运行sql语句

我已经在做这样的事了 Can I rollback Dynamic SQL in SQL Server / TSQL

即运行动态sql

有更好的方法吗

3 个答案:

答案 0 :(得分:2)

不要这样做。如果用户键入sp_msforeachtable'truncate table?'...?

,该怎么办?

答案 1 :(得分:2)

动态SQL当然是最简单的方法。替代方法是参数化SQL,但这需要让用户与T-SQL分开定义和设置参数。

您可以使用SqlCommand对象将T-SQL字符串提交到SQL Server;将它包装在EXEC中或其他任何东西都没有什么好处,就像你提供的链接一样。您可以在.NET端进行异常处理。

另外,如果你想支持命令批处理,请记住SqlClient和朋友不理解“GO”,这也不是一个真正的T-SQL命令 - 你需要解析输入并打破它自己批量生产。

我确信您明白这样做存在很大的安全风险,而且通常不建议这样做。您可以考虑使用指定具有有限权限的用户的连接字符串来帮助控制/限制其访问权限。

答案 2 :(得分:0)

RunSQL.aspx实用程序可能有所帮助。请参阅Upload T-SQL and execute at your hosting provider using an ASP.NET page