問題: C# 程式碼使用 SqlDataAdapter 及其 Fill 方法來執行查詢。 執行時間的差異是由於應用程式和SSMS 中處理參數的方式不同造成的。在應用程式中,使用AddWithValue方法新增NVARCHAR類型的參數,而在SSMS中,參數宣告為VARCHAR。 解決這個問題,要么: 確保應用程式和 SSMS 使用相同的電腦和登入名稱。 using (var conn = new SqlConnection(...))
using (var ada = new SqlDataAdapter(...))
{
ada.Fill(Logs);
}
ada.SelectCommand.Parameters.Add("@clientID", SqlDbType.Varchar, 200);
第一個解決方案是首選,因為它也解決了潛在的快取污染問題問題。
where client_id = cast(@clientID as varchar(200))
以上是為什麼我的 SQL 查詢在 SSMS 中很快,但在 C# 應用程式中卻很慢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!