憂国なプログラマ

背景を地味なパターンに直してみました。これはこれでいいかも!

全体表示

[ リスト ]


Fatal error encountered during command execution.

というメッセージを吐く場合があります。クエリにパラメータを設け MySqlParameter クラスでパラメータを設定しない場合、この例外が発生します。例えば
Dim query AS String = "SELECT * FROM customer WHERE id = @id"
Dim command As New MySqlCommand(query, con)
command.ExecuteNonQuery()
このクエリの場合、パラメータ id には値が割り当てられてないため、MySqlCommand クラスはこの例外を発生します。以下のようにパラメーターを設定すれば、例外は発生しません。 (´∀`)
Dim query AS String = "SELECT * FROM customer WHERE id = @id"
Dim command As New MySqlCommand(query, con)
command.Parameters.Add(New MySqlParameter("id", 10))
command.ExecuteNonQuery()
また気をつけなければいけないのは、以下のケース。

select @data := 3, @data * 4

この場合、クエリ内でパラメータに値を設定してるから phpMyAdmin や Navicat では正常に実行されます。
しかし MySQL Connector/NET では
Dim query AS String = "select @data := 3, @data * 4"
Dim command As New MySqlCommand(query, con)
command.ExecuteNonQuery()
Fatal error encountered during command execution.

・・・例外が発生します。(-ω-)

MySQL Connector/NET の仕様ということで注意が必要です。
ちなみに SQLClient の場合は・・・・・・・・・忘れた!(^ω^)


あと、どのパラメータが設定されてないのか調べるには、例外をウオッチして InnerException プロパティを見れば判ります。このケースでは ?id というパラメータが設定されてないのが判ります。(-ω-)

イメージ 1




 
 

この記事に

閉じる コメント(3)

顔アイコン

パラメーターを使っていないSELECT文でこれが発生するんですが
なぜでしょうねえ。同じSELECT文でも発生したりしなかったり
するんで、わけがわからんのです。 削除

2010/7/5(月) 午前 11:58 [ たな ] 返信する

顔アイコン

クエリや前後のソースを見てみないと何とも言えないです。コメントだと厳しいので、フォーラムとかに質問投げてみませんか?

MSDN フォーラムでも、先月くらいから幾つか MySQL Connector/NET の質問が出てきております。私も MSDN フォーラムに常駐しているので、VB か C# 辺りのカテゴリで質問されれば、回答できるかも知れません。

http://social.msdn.microsoft.com/Forums/ja-JP/categories/

2010/7/6(火) 午前 10:54 [ hilapon ] 返信する

顔アイコン

ありがとうございます。そりゃそうですよね。自分の知らない典型的な例がほかにもあるかも知れないと思って書いてみました。あまりにややこしいのでもう少し自力でやってみます。 削除

2010/7/6(火) 午後 7:22 [ たな ] 返信する

コメント投稿

顔アイコン

顔アイコン・表示画像の選択

名前パスワードブログ
絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
投稿

.
hilapon
hilapon
男性 / AB型
人気度
Yahoo!ブログヘルプ - ブログ人気度について
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

過去の記事一覧

 今日全体
訪問者18189820
ブログリンク010
コメント0201
トラックバック012

開​設日​: ​20​09​/6​/1​8(​木)​


みんなの更新記事