在c#中计算sql语句的最佳方法是什么?
本文关键字:最佳 方法 是什么 语句 计算 sql | 更新日期: 2023-09-27 18:17:32
在c#中评估SQL语句以确定它是否只做选择的最佳方法是什么?-检查语句是否会被修改(插入、更新、删除、修改或删除)。
关于开箱即用的c# dll/函数我可以使用,或者这是我应该使用字符串解析技术编写自己的东西吗?
谢谢。
我会使用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();
}