簡體   English   中英

如何在C#中可視化MySQL查詢字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM