[英]How can I visualize MySQL Query string in C#
我正在努力將適當的參數傳遞給MySQL查詢。 在MySQL工作台中,我的查詢工作正常,但在C#代碼中卻無法正常工作。 我認為這是由於錯誤的參數傳遞。
這就是為什么我想看看我到底要傳遞給cmd.ExecuteScalar()
方法的原因。 但是我不知道如何確定cmd
字符串。
在調試器中,我只獲得帶有形式參數的查詢,而不傳遞形式參數。 甚至通過使用cmd.ToString()
我也得到了這個廢話:
MySql.Data.MySqlClient.MySqlCommand。
這是我的代碼:
string timeStampStr = timeStamp.ToString("yyyy-MM-dd hh:mm:ss");
...
MySqlCommand cmd = new MySqlCommand("SELECT COUNT(*) FROM plc WHERE plc.last_communication < @timeThreshold AND plc.id = @plcId", _conn);
cmd.Parameters.AddWithValue("@timeThreshold", timeStampStr); // Is this correct ? timeStampStr is a string
cmd.Parameters.AddWithValue("@plcId", plcId);
object result = cmd.ExecuteScalar();
謝謝 !
最好的選擇可能是在MySQL上啟用查詢日志 ,然后使用它來分析發送到數據庫引擎的內容。
這是因為應用程序代碼實際上並沒有用參數值替換占位符,而數據庫引擎卻這樣做。 應用程序代碼調用參數化查詢並同時提供參數。 (有一點副作用,這使數據庫引擎可以更有效地緩存參數化查詢的執行計划,因為查詢本身不會發生變化。當對串聯值使用參數化查詢時,性能會略有提高。)
甚至通過使用cmd.ToString(),我也會得到以下信息:MySql.Data.MySqlClient.MySqlCommand。
那不是廢話,那是您正在調用.ToString()
的類的名稱。 引用類型的.ToString()
的默認行為是返回類型的名稱,除非您覆蓋它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.