ホームページ >データベース >mysql チュートリアル >.NET の MySqlCommand で MySQL ユーザー定義変数を使用するにはどうすればよいですか?
この記事では、ユーザー定義変数を含む MySQL クエリを実行するときに発生する一般的な問題について説明します。 .NET 環境内で MySqlCommand を使用するobject.
Background
ユーザー定義変数は、MySQL で動的 SQL 操作を実行するために重要な役割を果たします。ただし、このような変数を .NET MySqlCommand で使用しようとする場合、そのままでは直接サポートされません。
ユーザー定義変数を使用したクエリの実行
次の SQL ステートメントでは、 @rownum ユーザー定義変数を利用して、クエリ:
SELECT @rownum := @rownum +1 rownum, t.* FROM ( SELECT @rownum :=0 ) r, ( SELECT DISTINCT TYPE FROM `node` WHERE TYPE NOT IN ('ad', 'chatroom') )t
.NET で例外が発生しました
MySqlCommand を使用してこのクエリを実行すると、認識されない @rownum 変数が原因で例外がスローされる可能性があります。これは、.NET が明示的な定義が必要なパラメータであると想定しているためです。
解決策
この問題を回避するには、; を追加して接続文字列を変更できます。ユーザー変数を許可=True:
using (var sqlConnection = new MySqlConnection(SOURCE_CONNECTION + ";Allow User Variables=True"))
ユーザー変数を許可フラグを有効にすると、MySQL ドライバーが@rownum 変数を認識し、クエリを正しく実行できます。
代替ソリューション
ユーザー定義変数を使用できない場合は、取得のための代替ソリューションを検討することを検討してください。行番号:
以上が.NET の MySqlCommand で MySQL ユーザー定義変数を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。