人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VB.NET(2005) で初めてデータセットを利用しようとしていますが、モジュールからデータテーブルの値を取得できません。

DataSet1 に Table1 を追加し、実際にいくつかデータを入力した状態で、以下は問題なく参照できます。
Dim Table1 As DataTable = Form1.DataSet1.Tables("Table1")

以下は正しい値を取得できません。(0 になってしまいます。)
Dim Table1Count As Integer = Form1.DataSet1.Tables("Table1").Rows.Count

何か注意すべき点があるのでしょうか?

●質問者: isq
●カテゴリ:コンピュータ
✍キーワード:AS VB.NET データ モジュール 入力
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● KUROX
●35ポイント

DataSet1って、データコントロールですか?

気になったのは、変数の宣言と初期化を同時にしてるこ

とです。タイミングが悪いのではと。オブジェクトは存在

しても、まだデータを読み込んでない状態なので、0件を

返すのでは。

分かりませんが。

http://dobon.net/vb/

のサンプルが役に立つかもしれません。

------------------------------------------------

http://www.atmarkit.co.jp/fdotnet/basics/adonet04/adonet04_04.ht...

の dataset.cs はきちんとRows.Countを取れている。

(1)処理的に何か違いがあるかどうか調べてみる

(2)dataset.csと同じことしてRows.Countがきちんととれるか

でまず原因の切り分けをしてみてはどうでしょうか?

方式が変えれるならかえる。

--------------------------------------------

DAOだった時代は、Rows.Countは、レコード移動で最終行

まで移動しないと、正しい値が取れませんでした。

データは読む必要は、ないんですが、レコードのカレント位置を

最後にしてからRows.Countを読むという感じです。

以上、参考になれば幸いです。

もう少し調べてみますが(^^;

◎質問者からの返答

ご回答ありがとうございます。

DataSet1 は System.Data.DataSet コントロールです。

変数の初期化タイミングを変更したり、レコード移動をさせてから読み取ることを試行しましたが、同じ結果でした。

DataSet コントロールを配置しているフォームのクラス内に Rows.Count 読み取りのプロシージャを書くことで、とりあえず値は取得できました。

別モジュールに書いた時に問題が再現する為、スコープの問題なのかとも考えたのですが、DataSet 自体への参照はエラーなく通っており、ウォッチ式で確認すると Rows.Count は 0 になってしまっています。


2 ● aside
●35ポイント

当方環境で以下のソースコードを用い試したところ

2件カウントがとれました、参考になれば幸い

Public Class Form1
 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 ds.Tables.Add("Table1")
 Dim dt As DataTable = ds.Tables("Table1")
 dt.Columns.Add("test1")
 dt.Columns.Add("test2")
 Dim dr As DataRow = dt.NewRow
 dr.Item(0) = "aaa"
 dr.Item(1) = "aaa"
 dt.Rows.Add(dr)
 dr = dt.NewRow
 dr.Item(0) = "bbb"
 dr.Item(1) = "bbb"
 dt.Rows.Add(dr)
 Dim Table1Count As Integer = ds.Tables("Table1").Rows.Count
 End Sub
End Class
◎質問者からの返答

ご回答ありがとうございます。

参考にさせていただきます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ