在我的項目中,我想檢查MySQL狀態語句是否正確與C#,如何做到這一點,MySQL是否有一個API,可以讓我檢查狀態語法。 非常感謝。檢查MySQL狀態是否正確或不是以編程方式?
回答
您可以使用prepared statements來執行此操作。通過拋出錯誤或不拋出錯誤,它會告訴你SQL語法是否正確,是否支持該確切的服務器版本,即使存在涉及的表和列,這不僅僅是一種純粹的語法驗證。
但是,根據您的評論,您實際上試圖告訴您的代碼是否(或所有)成功插入(全部)行,並且這不會以這種方式工作:僅驗證語法不會驗證您的數據是插入是有效的。即使該聲明是正確的,您可能會嘗試將string
或float
值插入integer
列或乘以string
列。或者你可能違反約束條件,例如將null
插入聲明爲not null
的列或違反外鍵或唯一鍵約束。它也可以取決於服務器配置;例如插入日期0000-00-00
可能被允許或不允許,並且無效的數據可能導致一臺服務器發生錯誤,而另一臺服務器只會發出警告。
所以如果你真的想檢查一條insert
語句是否插入了行(在這種情況下,詢問一下,而不是詢問完全不同的問題通常是個好主意),那麼你可以簡單地使用ExecuteNonQuery
。它將返回
受影響的行數。
在簡單情況下,這將是插入行的數量。如果您使用例如觸發器或on duplicate key update
,它會包含它們的效果,但通常,您甚至不需要確切的值,並且只會檢查它是否爲> 0
。另一方面,並非每個insert
語句都必須插入行才能正確;例如一個基於某些標準將插入缺失行的查詢顯然做得很好,即使它沒有插入一行也僅僅是因爲沒有行丟失。所以如果你必須執行完全未知的代碼,這是要走的路:簡單地執行你想執行的語句,並處理任何可能發生的錯誤。
雖然通常您不會允許用戶輸入他想要的任何聲明。你可能有一些用戶輸入數據的形式,然後你可以在執行(準備好的)語句之前驗證輸入(例如檢查一個整數是否是一個整數)或使用數據感知組件(可能會執行數據庫訪問和類型驗證自己)。如果發生錯誤(例如,主鍵已經存在或與服務器的連接丟失),請抓住並處理它(例如,顯示用戶友好的錯誤消息,如「對不起,您插入的用戶已存在」)。
如果在執行之前確實需要檢查包括數據驗證的語句,則可以開始一個事務,使用ExecuteNonQuery
,將其回滾並評估結果/錯誤。但請記住,在不同的時間點結果可能不一樣 - 在您測試之後,其他人可能會有使用您要插入的主鍵插入或刪除一行。
謝謝你的回答,你的回答幫助我想出其他不同的想法。非常感謝你。 – wqq
- 1. 以編程方式檢查syncdb是否正在運行
- 2. 如何以編程方式檢查Zookeeper是否正在運行
- 3. 以編程方式檢查網站是否正常工作?
- 4. 如何以編程方式檢查Zookeeper是否正在運行?
- 5. 方案中可以檢查列表是否正確或不正確?
- 6. 如何以編程方式檢查用戶密碼是否正確?
- 7. 如何檢查WiFi連接是否是靜態或非編程方式在android
- 8. 以編程方式檢查文件是否是柵格或矢量(pdf,eps,ai)
- 9. 如何檢查iPhone是否以編程方式從睡眠狀態移動到活動狀態?
- 10. 檢查用戶是否以編程方式登錄或不進入appstore?
- 11. 檢查PHP編碼是否正確
- 12. 檢查數據庫狀態是否正確然後dosomething
- 13. 檢查SD卡是否可用或編程方式在Android
- 14. 如何以編程方式確定ehcache是否正在運行?
- 15. 如何以編程方式確定Windows是否正在關機?
- 16. 以編程方式確定IIS站點是否正在運行
- 17. 檢查MySQL是正確的
- 18. 以編程方式查找git存儲庫的當前狀態是否標記
- 19. 是否檢查零值這種方式是正確的?
- 20. 是否有可能以編程方式確定視頻是否正在播放?
- 21. 如何檢查格式是否正確
- 22. 正則表達式檢查是否「和,或不,並且不是」?
- 23. 檢查nummer是否正確
- 24. 檢查Glassfish DAS是否以編程方式運行
- 25. 以編程方式檢查TextView的「textAllCaps」是否已設置
- 26. 檢查splitBarWarNarrow是否爲真 - 以編程方式 - ActionBarSherlock
- 27. 以編程方式檢查COM端口是否存在於C#
- 28. 如何以編程方式檢查是否安裝使用Java
- 29. 如何檢查是否以編程方式請求頁面?
- 30. 檢查用戶是否允許以編程方式截斷表
如果你想純粹檢查SQL語法,你可以試試這個網站[MySQL Syntax Check](https://www.piliapp.com/mysql-syntax-check/)。如果要測試語法是否適用於特定的數據庫/查詢,則需要創建一個測試數據庫/表並使用它進行測試。 –
我正在使用C#,在我的項目中,我需要用C#編程檢查它。它是如何實施的? – wqq
那麼,你可以在這裏發佈部分/全部的mysql,我相信我們可以幫助驗證它是否有正確的語法(如果它包含敏感信息,請更改它),或者在C#中,可以使用[try/catch ](https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/try-catch)來檢查是否有任何錯誤(您仍然需要運行代碼並執行sql一次檢查它是否有效,首先嚐試測試語句)。 –