簡體   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