- PR -

非共有メンバを参照エラー

1
投稿者投稿内容
初心者
常連さん
会議室デビュー日: 2006/11/24
投稿数: 29
投稿日時: 2006-11-29 10:07
いつも参考にさせていただいております。
開発環境は
ASP.NET 2.0 /VisualStudio2005(VB) /Oracle.DataAccess となります。

今回、データセットクラスを作成し(App_CodeにDataSet1.xsd 作成)、そこにデータテーブル(仮にテーブル名TEST)を作成し、
そのデータテーブルにデータを追加したり削除したりということをしたいのですが、
aspxのファイルから呼び出すときに
「非共有メンバを参照するには、オブジェクト参照が必要です。」
とエラーになってしまいます。

Protected Sub btnIns_Click(ByVal sender As Object, ByVal e As System.EventArgs)


Dim DataTable As DataTable
Dim DataRow As DataRow

DataTable = DataSet1.Tables("TEST")

参照するにはどのようにしていいか分からず困っております。
簡単なことで申し訳ないですがご教授宜しくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-11-29 10:22
引用:

初心者さんの書き込み (2006-11-29 10:07) より:

「非共有メンバを参照するには、オブジェクト参照が必要です。」とエラーになってしまいます。

コード:

    Protected Sub btnIns_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim DataTable As DataTable
        Dim DataRow As DataRow

        DataTable = DataSet1.Tables("TEST")




変数名が '型名' と一緒になっているのが気になりますね。
コンパイル エラーは具体的にどの行で起きているのでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
初心者
常連さん
会議室デビュー日: 2006/11/24
投稿数: 29
投稿日時: 2006-11-29 10:26
返信ありがとうございます!

エラーになってますのは

DataTable = DataSet1.Tables("TEST")
の「DataSet1.Tables」の部分です。参照の仕方が悪いのだと思うのですが・・・。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-11-29 10:36
引用:

初心者さんの書き込み (2006-11-29 10:26) より:

DataTable = DataSet1.Tables("TEST")
の「DataSet1.Tables」の部分です。参照の仕方が悪いのだと思うのですが・・・。


DataSet1 はインスタンスではなく '型' そのものではないでしょうか?
Tables コレクションは、インスタンス メンバ (非共有メンバ) ですから、コンパイル エラーになります。

コード:

    Dim DataSet1Instance As New DataSet1()

    DataSet1Instance.Tables("TEST")


のように、インスタンスから参照しましょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
初心者
常連さん
会議室デビュー日: 2006/11/24
投稿数: 29
投稿日時: 2006-11-29 11:08
じゃんぬねっとさんの教えていただいた通りにすればできました!Tables コレクションは非共有メンバなのですね。
勉強不足です。。ありがとうございました!
1

スキルアップ/キャリアアップ(JOB@IT)