tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルtableadapterでエラーが出ます
記事No9715
投稿日: 2009/12/14(Mon) 23:20
投稿者えみ
.net初心者です。
現在、急ぎで.netの変更を行っておりますが、.net使用するのが初めてなのと、
インターネットが使用できない環境で作業を行っているため、こちらで質問させてください。

tableadapterでselectのSQLを作成して、それを呼び出しているのですが、
「オブジェクト参照がオブジェクトインスタンスに設定されておりません」
というエラーが発生します。

以下コードになります

Yakmstview01TA.FillByYak(syoho.Yakmstview01,syoho.No )
   Ifsyoho.Yakmstview01.count>0 Then
      Yak(0).yakdata = ""
      Yak(0).yakdata = syoho.Yakmstview01(0).yakNo
   End If

コードを追っていくと、まず一行目から

Pubric ReadOnly Property Yakmstview01() As Yakmstview01DataTable
    Get
       Return Me.TableYakmstview01
    End Get
End Property

上記へ飛びます。また、上記から
Yakmstview01TA.FillByYak(syoho.Yakmstview01,syoho.No )

一行目へカーソルが戻り、それ以降にオブジェクト参照のエラーがでます。

ちなみに、FillByYakのコードは以下になります

Public Overloads Overridable Function FillByYak(ByVal datatable As syoho.Yakmstview01DataTable, ByVal No as String) As Interger

   Me.Adapter.SelectCommand = Me.CommandCollection(1)
   If(No Is Nothing) Then
      Throw New Global.System.ArgumentNullException("No")
   Else
      Me.Adapter.SelectCommand.Parameters(1).Value = CType(No,String)
   End If
  
   Dim returnValue As Interger = Me.Adapter.Fill(dataTable)
   Return returnValue

コードを追って行く中で特にNullが入るようなところもありませんでした。
ひとつひっかかったのは、
Yakmstview01TA.FillByYak(syoho.Yakmstview01,syoho.No )
↑↑↑↑↑↑↑

Yakmstview01TAというオブジェクト名は作成した記憶がないことです。
関係あるでしょうか?

以上、お手数をおかけしますが、
ご回答いただけますようよろしくお願いいたします。

[ツリー表示へ]
タイトルRe: tableadapterでエラーが出ます
記事No9716
投稿日: 2009/12/15(Tue) 00:00
投稿者魔界の仮面弁士
> .net使用するのが初めてなのと、
そのような人が修正するというのに、「急ぎ」と言われているのですか……?


> 「オブジェクト参照がオブジェクトインスタンスに設定されておりません」
> というエラーが発生します。
その例外は、ArgumentNullException ではなく、
NullReferenceException の例外なのですよね?


> また、上記から
> Yakmstview01TA.FillByYak(syoho.Yakmstview01,syoho.No )
> 一行目へカーソルが戻り、それ以降にオブジェクト参照のエラーがでます。
> ちなみに、FillByYakのコードは以下になります
Function FillByYak のコードが実行されていないのだとすれば、
変数 Yakmstview01TA が Nothing である可能性が高いです。


> Yakmstview01TAというオブジェクト名は作成した記憶がないことです。
> 関係あるでしょうか?
流石に、Yakmstview01TA の意味までは分からないです。
(TableAdapter なのだろうと予想は出来ますが)

他人のソースの修正であるとは言え、えみさんはソースその物を持っているわけですから、
その Yakmstview01TA の正体を突き止めてみてください。

(1) まず、ソリューション エクスプローラで、[全てのファイルを表示]を
 押した状態にします。

(2) ツリーを展開して、該当ソースの *.designer.vb ファイルを開きます。

(3) その中で、Yakmstview01TA という変数を宣言している箇所を探します。
 見つかったら、その変数のデータ型(As 以降の部分)を調べおいてください。

(4) Sub InitializeComponent メソッドがあると思うので、その中で、
 変数 Yakmstview01TA に、その型のオブジェクトを代入しているコードが
 あるかどうかを確認してください。


もし、オブジェクトを代入している箇所が無いとしたら、うっかり必要なコードを
消してしまっているか、デザイナコードを破損させてしまったのだと思います。

その場合には、過去にバックアップ(していれば)したファイルから、必要な部分を
抜き出していくか、あるいは、コードの意味を理解した上で、本来あるべきコードを
自力で修復せねばならないかと思います。

[ツリー表示へ]
タイトルRe^2: tableadapterでエラーが出ます
記事No9723
投稿日: 2009/12/15(Tue) 21:43
投稿者えみ
> > .net使用するのが初めてなのと、
> そのような人が修正するというのに、「急ぎ」と言われているのですか……?

残念ながら人手が足りないため担当することになりました・・・



> Function FillByYak のコードが実行されていないのだとすれば、
> 変数 Yakmstview01TA が Nothing である可能性が高いです。

Yakmstview01TAはまさにTableAdapterでオブジェクト名を間違えていました。
単純なミスですみません。

無事、エラーなく実行でき、明日には完了できそうです。

本当にありがとうございました。

[ツリー表示へ]