• 締切済み

XMLの要素数の確認

VB.NETで下記のようなコーディングの場合、itemの要素数の最大値を取る方法を教えてください。 Loop処理にて存在するitem数だけ処理を繰り返す事をやりたいのですが。loop処理のブレイク条件が分かりません。 Dim dtSet As New DataSet dim i as Integer dtSet.ReadXml(reader) i=0 Dim dtTable As DataTable = dtSet.Tables(0) debug.write(DSInitial.Tables("name").Rows(0).Item(i))

みんなの回答

回答No.1

よくわかってませんが、こういうことですか? Dim dtRow As DataRow Dim i, j As Integer For i = 0 To dtSet.Tables.Count - 1   dtTable = dtSet.Tables(i)   For Each dtRow In dtTable.Rows     For j = 1 To dtTable.Columns.Count - 1       Debug.WriteLine(dtRow.Item(j))     Next   Next Next

関連するQ&A

  • VB.NETでのデータベース書き込みについて

    リストレビューに表示されているデータをデータベースに書き込む処理を追加したいのですが、データセットにメモリ上のテーブルを作成してデータベースへ書き込む方が良いのでしょうか? それとも直接データベースに書き込む方が良いのでしょうか? 前者のテーブル作成のコードは書きの通りです。 Public Function AddDataSetTable(ByVal kojo_cd() As String, ByVal kojo_name() As String, ByVal kojo_date() As String)   Dim dtSet As New DataSet("DataSetTable")   Dim dtTable As New DataTable("CalDatTable")   Dim fmain As New FrmMain   Dim i As Integer   'テーブルに列を追加    With dtTable.Columns     .Add("コード")     .Add("名称")     .Add("日にち")    End With   'テーブルに行を追加   With dtTable.Rows    For i = 0 To UBound(kojo_cd)     .Add(New Object() {kojo_cd(i), kojo_name(i), kojo_date(i)})    Next i   End With   'データセットにテーブルを追加   dtSet.Tables.Add(dtTable) End Function

  • Gridに日付を入れるとき

    Gridに「2006/05/10 13:00:00」と表示させたいのですが、「2006/05/10」と表示されてしまいます。 ------------------------------------------------ Dim dt As DataTable Dim dtSet As New DataSet dt = dtSet.Tables.Add("aaa") dt.Columns.Add("日付", Type.GetType("System.DateTime")) dt.Rows.Add(New Object() {"2006/05/10 14:00:00"}) DataGrid1.DataSource = dt ------------------------------------------------ ソースが間違っているのでしょうか。どなたかアドバイスをお願いします。

  • DataGridViewでitemを指定してデータ

    DataGridViewでitemを指定してデータを取得する事はできますか? 下記のように座標を指定して取得する方法はわかります。 Dim IntItem1 As Integer = DataGridView1(j, i).Value DataSetの場合は、DataRowに落として取れます。 Dim DataRow1 As DataRow = DataSet1.Tables("Table1").Rows(0) Dim IntItem1 As Integer = DataRow1("Item1") 同じノリで DataGridViewからアイテムを指定してデータを取得したいのですが下記のような事はできませんでした。 Dim DataGridViewRow1 As DataGridViewRow = DataGridView1.Rows(0) Dim IntItem1 As Integer = DataGridViewRow1("Item1") ← エラー 書き方があれば教えて下さい。

  • VB.NETからアクセス

    お世話になります。ちょっと急ぎでお聞きしたいのですが、アクセスの、あるテーブルに新しい行を追加したくて次のように記述すると、「更新には、新しい行を含むDataRowコレクションが渡されたとき、有効なINSERT COMMANDが必要です。」とでました。 Dim rw As DataRow rw = DataSet11.Tables(1).NewRow rw.Item("年") = "2004" rw.Item("月") = "10" DataSet11.Tables(1).Rows.Add(rw) OleDbDataAdapter1.Update(DataSet11) なにか良い解決方法はあるでしょうか?  すみません、よろしくお願いします。

  • DataTableの値を変数に代入したい

    DataTableの値を変数に代入したい 以下のコードのにてDBから『職員ID』・『氏名』を取得しSyokuin(,)の2次元配列に代入したいのですが Do Loopのところで『オブジェクト参照がオブジェクトインスタンスに設定されていません』とエラーが出ます。 ほかのところでほぼ同様のコードでデータグリッドビューに表示はうまくいくんですが? Using OleCn As New OleDbConnection(省略) Using OleCmd As New OleDbCommand(省略) Using OleDAdp As New OleDb.OleDbDataAdapter() OleCmd.Connection = OleCn '配列取得 OleDAdp.SelectCommand = OleCmd OleDAdp.Fill(OleDSet, "職員") Dim i As Integer = 0 Dim jAs Integer = 0 Do Until j= OleDSet.Tables("職員").Columns.Count - 1   Do Until i = OleDSet.Tables("職員").Rows.Count - 1   Syokuin(j, i) = OleDSet.Tables("職員").Rows(i)(j)   i += 1   Loop j += 1 Loop End Using End Using End Using ご教授お願いします

  • 「テーブルに主キーがありません。」というエラーが出て困ってます。

    VisualStudioでASP.NETをやってます。初心者です。 データグリッドの削除ボタンを押して行を削除したいのですが、 テーブルに主キーがありません。というエラーが出てしまいます。 テーブルに主キーはあるんですけれども、原因がわかりません。 Dim mytable As DataTable Dim myrow As DataRow Dim key As String SqlDataAdapter1.Fill(DataSet11) key = DataGrid1.DataKeys(e.Item.ItemIndex) mytable = DataSet11.Tables("テーブル名") ↓ここでエラーになるようです。 myrow = mytable.Rows.Find(key) myrow.Delete() ご存知の方いらっしゃいましたら、よろしくお願いします。

  • 1から入力された数までの素因数を数えるプログラム

    こんにちは 1から入力された数(N)までの素因数を数えるプログラムを 作成したいのですが、うまくいきません。 たとえば10と入力すると2と表示されてしまいます。 どこがおかしいのかわかりません。 どなたか教えてください。おねがいします。 N個の配列を用意し、1を入れていき、 素因数でない数の要素には0をいれて、 最終的に1が入っている配列の数を数えて1~Nまでの 素因数の数を数える方法を考えています。 Dim M As Integer Dim N As Integer Dim i As Integer Dim j As Integer Dim sum As Integer Dim L(1000) As Double N = Val(TextBox1) M = N i = 1 Do Until i > N L(i) = 1 i = i + 1 Loop i = 2 Do Until i > M j = i * 2 Do Until j > M L(j) = 0 j = j + 1 Loop i = i + 1 Loop sum = 0 For i = 2 To N If L(i) = 1 Then sum = sum + 1 End If Next i

  • DataTableに特定のフィールドが存在するかどうか調べるには?

    DataTableに登録されているフィールドに、特定のフィールドが存在しているかどうか調べるには、どのようにすればよいでしょうか? dtTable.Columns.Add("TEST1") dtTable.Columns.Add("TEST2") dtTableにTEST1とTEST2のフィールドが登録されていたとして、 Dim tmp As String = dtTable.Rows(0).Item("TEST3"),ToString TEST3のフィールド名で値を取得しようとすると、TEST3の列が登録されていない為、エラーとなります。 そこで、事前にTEST3というフィールドが、DataTableに存在するかどうか調べたいのです。 (ハッシュテーブルのContainsKeyメソッド等のようなものを求めています) お分かりになる方がいましたら、宜しくお願いします。

  • C# DataGridViewにデータを追加したい。

    C# DataGridViewにデータを追加したい。 DataGridViewにレコードを追加したいのですが、Formのロードイベントで以下コードを実行しています。 // テーブルを作成 DataSet dataSet1 = new DataSet("商品マスター"); DataTable dataTable1 = dataSet1.Tables.Add("製品テーブル"); DataColumn dataClumn1 = dataTable1.Columns.Add("ID", typeof(int)); DataColumn dataClumn2 = dataTable1.Columns.Add("名前", typeof(int)); // テーブルにデータを追加 dataTable1.Rows.Add(new Object[] { 1, name1}); dataTable1.Rows.Add(new Object[] { 2, name2}); dataGridView1.DataSource = dataTable1; としています。 Formにボタンを配置し、ボタンクリック時にテキストボックス[txtProName]のデータを レコード追加したいのですが、記入の仕方がわかりません。 まず、 DataSet dataSet1 = new DataSet("商品マスター"); DataTable dataTable1 = dataSet1.Tables.Add("製品テーブル"); をロードイベントメソッドに記入しているのも問題がありそうなのですが、 良く理解できません。 ボタンイベントでデータを挿入する方法等、記入方法のご教授よろしくお願いいたします。 当方、超初心者なので、出来れば、ソースコードもお願いいたします。m(_ _)m

  • DataTableの件数に関して

    フォーム上に”DataGridView”を貼り付け、そこへ1行ずつ、複数行データを入力するような 事を考えています。 厳密には、”DataGridView”のセルをダブルクリックした時に、他のDBから検索された 結果を貼り付ける(表示)ような事をしています。 その際に、”Datatable”と”DataGridView”をバインドし、ダブルクリックされたら”DataTable” へ追加し表示というような事をしていますが、1件目(1行目)をクリック⇒表示、2件目(2行目) クリック⇒表示という場合には正しく表示されますが、1件目(1行目)クリック⇒表示の後、再度 1行目をクリックして表示した場合、なぜか”DataTable”の件数が、追加もしていないのに 最初から2件となっていて、さらに処理が終わった後には、2件となっているはずが3件となって いて、さらに空白の行が追加されてしまっています。 どうしてもこの現象から脱する事ができず、助けて頂ければと思います。 “DataTable”への追加は、問題ないかとは思われますが、、、 ★ 記述内容 Dim data_row As DataRow = dtTable.NewRow() data_row("発注番号") = PIN_発注番号 data_row("発注日付") = KIN_発注日付 dtTable.Rows.Add(data_row) DataGridView1.DataSource = dtSet.Tables(0) 教えて下さい。 よろしくお願いします。