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

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

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

Re[1]: No69511 (Techs さん) への回答です


(過去ログ 118 を表示中)

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

■69539 / inTopicNo.1)  No69511 (Techs さん) への回答です
  
□投稿者/ WebSurfer (154回)-(2014/01/07(Tue) 13:43:39)

分類:[VB.NET/VB2005 以降] 

魔界の仮面弁士さんはどのように「ERROR-タイトルは半角60字以内!」を避けて書き込
まれたのか分かりませんが、自分は相変わらずエラーで書き込めないのでこちらに回答
しておきます。

No69511 (Techs さん) に返信
> 以下のサイトの#2のコードを自分のクラス等に変更して記述しました。
> http://ja.softuses.com/137083

「サイトの#2のコード」が使えるのは SelectCommand が初期化された後です。

SelectCommand がどこで初期化されるかは、自動生成された DataSet + TableAdapter
のコードを見てもらえば分かると思いますが、TableAdapter の Fill メソッドまたは
GetData メソッドの中です。

> 実際に値設定するところ(ストアドの実行が行われる直前に記述しました)
> アダプタ.CommandTimeout = 適当な値

「ストアドの実行が行われる直前に記述しました」というのがどこだか分かりませんが、
TableAdapter の Fill メソッドまたは GetData メソッドの前だとすると、その時点で
は「#2のコード」の Adapter.SelectCommand は null です。

> エラー自体は出ませんでしたが実行すると「アダプタ.CommandTimeout = 適当な値」の部分で
> 例外が発生して落ちました(うろおぼえですがInvalidOperationExceptionだったかと思います)

上の理由で、「アダプタ.CommandTimeout = 適当な値」の行で NullReferenceException
がスローされたのではないですか?(InvalidOperationException ではなくて。うろ覚
えの情報を書くのは避けていただきたいと思います。)

確認してください。

原因が上記の通りでしたら、解決策は、Fill メソッドまたは GetData メソッドで
this.Adapter.SelectCommand を初期化している this.CommandCollection[0] に設定す
ることが考えられます。
引用返信 編集キー/
■69540 / inTopicNo.2)  Re[1]: No69511 (Techs さん) への回答です
□投稿者/ WebSurfer (155回)-(2014/01/07(Tue) 13:48:38)
No69511 (Techs さん) に返信
先のレスで、以下の部分が誤解を招くような書き方だったので捕捉します。

> 原因が上記の通りでしたら、解決策は、Fill メソッドまたは GetData メソッドで
> this.Adapter.SelectCommand を初期化している this.CommandCollection[0] に設定す
> ることが考えられます。

上記の意味は「サイトの#2のコード」の中で、Adapter.SelectCommand に代えて
this.CommandCollection[0] を使うということです。
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -