私のプロジェクトでは、C#でMySQLの状態構文が正しいかどうかをチェックしたいのですが、これを行う方法は、MySQLに状態構文をチェックさせるAPIがあります。 ありがとうございます。MySQLの状態が正しいかどうかをプログラムで確認しますか?
答えて
これを行うにはprepared statementsを使用できます。エラーを投げるかしないかによって、SQL構文が正しいかどうか、その正確なサーバー・バージョンでサポートされているかどうか、関連する表と列が存在する場合でも、純粋な構文検証以上のことがわかります。
しかし、あなたのコメントから、あなたのコードが(すべての)行を挿入するかどうかを実際に確かめようとしているのですが、これはうまくいきません。単に構文を検証しても、挿入するためのタイリングが有効です。文が正しい場合でも、integer
列にstring
またはfloat
の値を挿入するか、またはstring
列を掛けることができます。あるいは、制約に違反する可能性があります。 null
を、not null
と宣言された列に挿入するか、外部キーまたは一意のキー制約に違反します。また、サーバー構成にも依存する可能性があります。例えば0000-00-00
の日付を挿入することは許可されているかどうかにかかわらず、無効なデータがあるサーバーではエラーになり、別のサーバーでは警告のみが表示される可能性があります。
insert
ステートメントに行が挿入されているかどうかを実際に確認したい場合は、まったく別の質問をするのではなく、その質問をすることをお勧めします)、単にExecuteNonQuery
を使用します。返されます
影響を受ける行の数。
単純に、これは挿入された行の数になります。たとえばあなたが使用している場合トリガーまたはon duplicate key update
を入力すると、その効果が表示されますが、通常は正確な値を入力する必要はなく、> 0
であることのみを確認します。一方、すべての文が正しくなるように行を挿入する必要はありません。例えばいくつかのcriteraに基づいて不足している行を挿入するクエリは、明らかに、行が1つも欠落していないという理由だけで1つの行を挿入しなくてもうまくいっています。
完全に未知のコードを実行する必要がある場合は、これを実行する方法です。実行したいステートメントを実行し、起こりうるエラーを処理するだけです。
通常は、ユーザーが希望する文を入力することはできませんが、ユーザーがデータを入力したときに、(準備された)文を実行する前に入力を検証したり(たとえば、整数が実際に整数であるかどうかを確認するなど)、データを認識するコンポーネントを使用できます独自の検証エラーが発生した場合(たとえば、主キーが既に存在する場合やサーバーへの接続が失われている場合)は、キャッチして処理します(たとえば、「申し訳ありませんが、挿入しているユーザーが既に存在します。
実行前にデータ検証を含む文を実際に確認する必要がある場合は、トランザクションを開始し、ExecuteNonQuery
を使用してロールバックし、結果/エラーを評価します。しかし、結果が異なる時点で同じではない可能性があることを覚えておいてください。挿入しようとしている主キーを持つ行を挿入または削除します。
あなたの答えをありがとう、あなたは私が他のさまざまなアイデアを考え出すのに役立つ答え。どうもありがとうございました。 – wqq
- 1. プロセスがビジー状態かどうかを確認する方法
- 2. 他のアプリケーションがビジー状態かどうかを確認してください
- 3. AndroidでTorchのライトステータスにアクセスする方法はありますか?フラッシュライトがプログラム状態でオン状態かオフ状態かを確認したい
- 4. UWPの状態でタップされているかどうかを確認しようとしています
- 5. QCheckBoxの状態を確認していますか?
- 6. Webブラウザコントロールがビジー状態かどうかを確認するにはどうすればいいですか?
- 7. NodeMCUでバッテリーの状態を確認しますか?
- 8. Vuex状態オブジェクトが空であるかどうかを確認する方法
- 9. 日付が正しいかどうかを確認する
- 10. 入力パスワードが正しいかどうかを確認する
- 11. 状態の更新が完了したかどうかを確認する方法はありますか?
- 12. 行が存在しないかどうか確認する[MySQL]
- 13. ブートストラップ確認:オープン状態とクローズ状態を検出しますか?
- 14. Objective-C:OSXのファイアウォールの状態を確認しますか?
- 15. PyQt4のQPushButtonの状態を確認しますか?
- 16. Android Firebaseの接続状態を確認しますか?
- 17. 状態を使用してフィールドが無効かどうかを確認します
- 18. C#でサーバーの動作状態を確認します。サーバープロセス(ビジネスオペレーション)の状態を確認します
- 19. ブラウザがビジー状態になるかどうかを確認する
- 20. 状態を確認するにはどうすればよいですか?
- 21. ネットワーク状態を確認し、プログラム内のPPPを制御する
- 22. 配列内のANY項目が特定の状態にあるかどうかを確認します。coffeescript
- 23. モデルごとに複数の状態(aasm)を使用しているときに特定の状態が動作していないかどうかの確認
- 24. 私のプログラムは、文字列内に重複が正しくないかどうかを確認しません。
- 25. アマゾンのキーが正しいかどうかをプログラムでプログラムで確認するにはどうすればよいですか?
- 26. JavaScriptがキーボードの状態を確認しています
- 27. Windowsエクスプローラウィンドウの状態をPowerShellで確認できますか?
- 28. IntelliJでヘッドの分離状態を確認できますか?
- 29. 変数がnullかどうかを確認します - 不正確な検証
- 30. キャッシュ内のグローバル変数の状態が正しいかどうか
純粋にSQL構文をチェックしたい場合は、このWebサイト[MySQL構文チェック](https://www.piliapp.com/mysql-syntax-check/)を試すことができます。特定のデータベース/クエリに対して構文が機能するかどうかをテストする場合は、テストデータベース/テーブルを作成し、それを使用してテストする必要があります。 –
私はC#を使用しています。私のプロジェクトでは、C#でプログラムをチェックする必要があります。それは実装できますか? – wqq
さて、あなたはmysqlの一部または全部をここに投稿することができます。私はそれが正しい構文を持っているかどうかを確認するのを助けることができます(機密情報が含まれていればそれを変更する)か、C#では[try/catch ](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/try-catch)を実行してエラーがあるかどうかを確認します(コードを実行してSQLを実行する必要があります)一度動作するかどうかを確認するには、最初にテストステートメントを試してください)。 –