C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: SQL実行時エラー


(過去ログ 100 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■59936 / inTopicNo.1)  SQL実行時エラー
  
□投稿者/ Haru (14回)-(2011/06/13(Mon) 15:17:24)

分類:[C#] 

INSERT文を実行すると、以下のようなエラー文が出ます。
「1 つ以上の必要なパラメーターの値が設定されていません。」

いろいろ調べたところ、SQL文がおかしいってあったのですが、私はこの処理を変数などを使い、複数回繰り返すようにプログラムしています。
1回目に追加するときに、このエラーがでると、構文ミスとわかるのですが、
最後のある行でこのエラーが起きます。
また、追加先であるMDBファイルを見ると、きちんとその行が追加されています。

構文エラー以外に原因ってあるのでしょうか?

引用返信 編集キー/
■59937 / inTopicNo.2)  Re[1]: SQL実行時エラー
□投稿者/ 風太郎 (15回)-(2011/06/13(Mon) 15:24:42)
2011/06/13(Mon) 15:25:21 編集(投稿者)
2011/06/13(Mon) 15:25:14 編集(投稿者)

No59936 (Haru さん) に返信
> INSERT文を実行すると、以下のようなエラー文が出ます。
> 「1 つ以上の必要なパラメーターの値が設定されていません。」
>
> いろいろ調べたところ、SQL文がおかしいってあったのですが、私はこの処理を変数などを使い、複数回繰り返すようにプログラムしています。
> 1回目に追加するときに、このエラーがでると、構文ミスとわかるのですが、
> 最後のある行でこのエラーが起きます。
> また、追加先であるMDBファイルを見ると、きちんとその行が追加されています。
>
> 構文エラー以外に原因ってあるのでしょうか?
>

いえ、構文エラーといいますか、しっかり「1 つ以上の必要なパラメーターの値が設定されていません。」と
エラー内容が返っているのであれば、その内容を確認してみればよいのではないでしょうか?

最後のSQL文がオカシイのでしょうね。おそらく。
全レコードが問題なく追加されているのであれば
最後に余計な一行が回っていないか確認してみればいいと思います。

方法としてはtry catchでエラーが起きた際のSQL文を確認してみればよいかと。

*15:26誤字修正
引用返信 編集キー/
■59938 / inTopicNo.3)  Re[1]: SQL実行時エラー
□投稿者/ ツイッター (1回)-(2011/06/13(Mon) 15:25:22)
No59936 (Haru さん) に返信
> INSERT文を実行すると、以下のようなエラー文が出ます。
> 「1 つ以上の必要なパラメーターの値が設定されていません。」

> 構文エラー以外に原因ってあるのでしょうか?

やはり構文エラーがあやしいです。
例えば、パラメータが数値の場合、その値が空欄であればこのエラーとなります。
エラーとなったSQL文を見てみてはどうでしょうか?
(っていうか、まずはエラーとなった時のSQL文が正しいかどうかを調べるべきでは?
複数回繰り返しているから構文は間違いない、という考えは捨てるべきです。)
引用返信 編集キー/
■59939 / inTopicNo.4)  Re[2]: SQL実行時エラー
□投稿者/ Haru (15回)-(2011/06/13(Mon) 15:40:28)
No59938 (ツイッター さん) に返信
> ■No59936 (Haru さん) に返信
>>INSERT文を実行すると、以下のようなエラー文が出ます。
>>「1 つ以上の必要なパラメーターの値が設定されていません。」
>
>>構文エラー以外に原因ってあるのでしょうか?
>
> やはり構文エラーがあやしいです。
> 例えば、パラメータが数値の場合、その値が空欄であればこのエラーとなります。
> エラーとなったSQL文を見てみてはどうでしょうか?
> (っていうか、まずはエラーとなった時のSQL文が正しいかどうかを調べるべきでは?
> 複数回繰り返しているから構文は間違いない、という考えは捨てるべきです。)


調べました。数値の場合も、if文で空白の場合は0を入れるようにしています。
そのエラーになる行は空白はないです。
エラーになったSQL文をAccessで実行したときは、問題なく追加されます。
引用返信 編集キー/
■59940 / inTopicNo.5)  Re[2]: SQL実行時エラー
□投稿者/ もんごろいどAU (2回)-(2011/06/13(Mon) 16:11:46)
まず何が悪いのか検証しないことには…

その、エラーの出るという最後のデータを先頭に移動して同様に走らせてみては?
→1回目でエラーになるならデータがおかしいか、SQL(に叩き込む方法)がおかしい
→最後でエラーになるなら繰り返しを含めたコードがおかしい

引用返信 編集キー/
■59941 / inTopicNo.6)  Re[3]: SQL実行時エラー
□投稿者/ ツイッター (2回)-(2011/06/13(Mon) 16:22:14)
No59939 (Haru さん) に返信

最初の質問文を見ると、INSERT文がエラーになったと解釈しますが、
INSERT文がエラーになったのであれば、データの追加はされないはず。
他にSELECT等SQLを実行しているところはないですか?
(コードを見ないと何とも言えませんが、本当にINSERT文のところでエラーになったのですか?)
引用返信 編集キー/
■59942 / inTopicNo.7)  Re[1]: SQL実行時エラー
□投稿者/ 風太郎 (16回)-(2011/06/13(Mon) 16:27:35)
No59936 (Haru さん) に返信
> INSERT文を実行すると、以下のようなエラー文が出ます。
> 「1 つ以上の必要なパラメーターの値が設定されていません。」
>
> いろいろ調べたところ、SQL文がおかしいってあったのですが、私はこの処理を変数などを使い、複数回繰り返すようにプログラムしています。
> 1回目に追加するときに、このエラーがでると、構文ミスとわかるのですが、
> 最後のある行でこのエラーが起きます。
> また、追加先であるMDBファイルを見ると、きちんとその行が追加されています。
>
> 構文エラー以外に原因ってあるのでしょうか?
>

エラーの起きるSQL文に、ACCESSの予約語が入ってたり・・・?そんなことないですよね。まさか。

引用返信 編集キー/
■59961 / inTopicNo.8)  Re[2]: SQL実行時エラー
□投稿者/ Haru (16回)-(2011/06/14(Tue) 09:12:31)
解決いたしました。
問題は ツイッター さんがおっしゃっていたように、INSERTした後のSELECT文でした。
みなさん、ありがとうございました。
解決済み
引用返信 編集キー/
■59968 / inTopicNo.9)  Re[3]: SQL実行時エラー
□投稿者/ ツイッター (3回)-(2011/06/14(Tue) 11:56:33)
No59961 (Haru さん) に返信

解決して良かったです。

ただし、今回の件は、きちんとエラーの箇所を特定できれば、
このような質問をする必要もなく、回答者の皆さんを混乱させることもなかった筈です。
もう少し自分でエラー箇所を調べ、正しい情報の提供をお願いしたいものです。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -