繁体   English   中英

在C#中评估sql语句的最佳方法是什么?

[英]What is the best way to evaluate a sql statement in C#?

在C#中评估SQL语句以确定它是否不仅仅是选择的最佳方法是什么? - 即 - 如果稍后执行该语句,则检查是否将更改值(插入,更新,删除,修改或删除)。

我可以使用的开箱即用C#dlls / functions的任何想法,或者这是我应该使用字符串解析技术编写自己的东西?

谢谢。

我会使用数据库权限。 创建只具有读访问权限的数据库用户,然后,除SELECT之外的任何其他查询都将失败。

一种方法是使用事务然后回滚,有明显的限制(可能不适用于复杂的查询,例如返回多个结果集以及其间的其他更新,并且不适用于使用非回滚命令(如DBCC)的查询 - 对于像这样的情况,可能想要捕获异常):

using(SqlConnection sqlConn = new sqlConnection(CONNECTION_STRING))
{
    sqlConn.Open();
    using (SqlTransaction trans = sqlConn.BeginTransaction())
    {
        // execute code and see if rows are affected here
        var query = " ... " ;
        var cmd = new SqlCommand(query, sqlConn);
        var rowsAffected = cmd.ExecuteNonQuery();
        if (rowsAffected > 0) { ... }

        // roll back the transaction
        trans.RollBack();
    }
    sqlConn.Close();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM