在c#中计算sql语句的最佳方法是什么?

本文关键字:最佳 方法 是什么 语句 计算 sql | 更新日期: 2023-09-27 18:17:32

在c#中评估SQL语句以确定它是否只做选择的最佳方法是什么?-检查语句是否会被修改(插入、更新、删除、修改或删除)。

关于开箱即用的c# dll/函数我可以使用,或者这是我应该使用字符串解析技术编写自己的东西吗?

谢谢。

在c#中计算sql语句的最佳方法是什么?

我会使用db权限。创建一个只有读访问权限的数据库用户,然后,执行除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();
}