問題タブ [mysql-parameter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - MySqlParameter を使用して条件付きで列をデフォルト値に設定するにはどうすればよいですか?
ユーザー アカウントを格納する MySql データベースにテーブルがあります。列の 1 つである expires には有効期限が格納されますが、デフォルトは NULL です。有効期限を削除してデフォルト値に戻す必要があります。
現在、私の CRUD ルーチンはすべて、MySqlCommand とパラメーターを使用して記述されています。これは MySqlParameter で直接行うことができますか? それとも、この不測の事態を処理するために別のコマンド オブジェクトを作成する必要がありますか?
c# - C# MySqlParameter の問題
(int) faultsGroup は 0 または 1 ですが、常に次のエラーが発生します: 列 'FaultGroup' を null にすることはできません
誰かが理由を教えてくれますか?構文は問題ないようです。
c# - mySQL :C# で使用する構文
私はC#MYsqlで使用しています.MySql Workbenchで実行すると機能するクエリがありますが、C#では値を返さず、antエラーも発生しません.テーブル名databaseNameの前に使用するMysqlでの使用は1つだけです.tableName ですが、C# では必要ないと思います。これは、何も返さないクエリの一部です。
編集:解決済み
ここでは、ユーザーがボタンをクリックしたときに実行されるすべてのコードを示します。
c# - C#およびMySQL .NETコネクタ-ジェネリッククラスでのSQLインジェクション攻撃を防ぐ方法はありますか?
私のアイデアは、MySQL .NET Connector 6.2.2を介してMySQLデータベースと通信するC#(3.5)Winformsアプリを介してInsert / Update/Selectの汎用クラスを作成することです。
例えば:
次に、プログラムのどこからでも、SQLクエリ文字列を渡すだけで、ユーザー入力の有無にかかわらずクエリを実行できます。
SOを読み回すと、これがSQLインジェクション攻撃につながる可能性があることがわかり始めています(ユーザー入力値の場合)。入力されたstrSQLをスクラブする方法はありますか、それともデータベース関数を実行する必要があるすべてのメソッドで個別のパラメーター化されたクエリを作成する必要がありますか?
UPDATE1:
私の最終的な解決策は次のようになります。
c# - 同じクエリでパラメータを複数回使用できますか?
私は疑問に思っていました、次のように、同じクエリでパラメータを複数回使用できますか?
これは可能ですか、それとも2つのパラメーターを書く必要がありますか?
mysql - SqlParameterCollection は、MySqlParameter オブジェクトではなく、null 以外の SqlParameter タイプ オブジェクトのみを受け入れます
MySqlサーバーの「ExceptionLog」のテーブルにスローされた例外を挿入するメソッドを作成しました。
ExceptionLog テーブル形式
idExceptionLog int (AI) ユーザー (varchar 45) ErrorMessage (varchart 4000)
問題は、次のエラーが発生し続けることです。誰かが理由を知っていますか?
SqlParameterCollection は、MySqlParameter オブジェクトではなく、null 以外の SqlParameter タイプ オブジェクトのみを受け入れます。
.net - Add()とAddWithValue()を使用したMySqlパラメーターの追加の違い
このドキュメントのMySqlによるとC.7.9.6。MySQL Connector / NET 5.0.5での変更(2007年3月7日):
メソッドを追加し、廃止として
MySqlParameterCollection.AddWithValue
マークしました。Add(name, value)
私は.Add
最近まで使っていて、問題はありませんでした。メソッドを発見する.AddWithValue
と、主に構文が少なくて済むため、この方法が適しています。
私の質問:2つの方法の間に機能的な違いがあるかどうか誰かが知っていますか?それらに関する適切なドキュメントが見つかりません。
編集:
Microsoftは、SqlParameterCollectionについて次のように述べています。
AddWithValue
SqlParameterCollection.Add
文字列とオブジェクトを受け取るメソッドを置き換え ます。そのオーバーロードはAdd
文字列を取り、オブジェクトは、文字SqlParameterCollection.Add
列とSqlDbType列挙値を受け取るオーバーロードとのあいまいさの可能性があるため、非推奨になりました。この場合、整数を文字列とともに渡すと、パラメーター値または対応するSqlDbType値のいずれかとして解釈できます。AddWithValue
名前と値を指定してパラメータを追加する場合はいつでも使用できます。
おそらくそれは同じ理由によるものです。
mysql - コマンドで追加するMysqlcommandでMySQLパラメータ配列を使用する方法
mysqlcommand と mysqlparameter 配列があります []
次に、この配列のコマンド パラメータを設定します。どうすればそれができますか?エラーが発生しました:
MySql.Data.MySqlClient.MySqlException:
MySqlParameter オブジェクトのみを格納できます
c# - パラメータ化されたMySqlINSERTクエリに正しいパラメータ値がありません
パラメータ化されたクエリを使用して、基本的な挿入ステートメントを実行しようとしています。私の問題は、使用している構文が何であれ、適切な値ではなくすべてのパラメーターをnullに設定してクエリが実行されているように見えることです(コマンドテキストに値をハードコーディングしない限り)。
コードは次のとおりです。
3つの異なる構文により、nullパラメーターの値になります。
ps:command.Parameters.AddWithValue()メソッドを使用している人をたくさん見ましたが、持っていないようです。
よろしく、ベン
c# - リストを追加mysqlパラメータに
.NETコネクタのMySqlParameterについてこの質問があります。
私はこのクエリを持っています:
そして、MySqlParameterは次のとおりです。
これは可能ですか?intの配列を単一のMySqlParameterに渡すことは可能ですか?もう1つの解決策は、intの配列を「1,2,3,4」などの文字列に変換することですが、これをMySqlParameterに渡して文字列として認識されると、次のようなSQLクエリが実行されます。 "1 \、2 \、3 \、4"であり、これは期待値を返しません。
@更新:mysqlコネクタチームはもう少し頑張る必要があるようです。