2016-05-30 16 views
1

リストボックス2の値を2番目の列「日付」に追加するにはどうすればよいですか?コードは機能しますが、最初の列「名前」に値が追加されます。2番目の列にデータテーブルへの値を追加

XmlTextReader reader = new XmlTextReader(cesta); 
XmlNodeType type; 

DataSet dsload = new DataSet(); 
dsload.ReadXml(cesta); 
DataTable dt = new DataTable("MyTable"); 
dt.Columns.Add(new DataColumn("Name", typeof(string))); 
dt.Columns.Add(new DataColumn("Date", typeof(DateTime))); 

while (reader.Read()) 
{ 
    if (reader.Name == "Name") 
    { 
     reader.Read(); 
     listbox1.Items.Add(reader.Value); 
    } 

    if (reader.Name == "Date") 
    { 
     reader.Read(); 
     listbox2.Items.Add(reader.Value); 
    } 

} 

foreach (string value in listbox1.Items) 
{ 
    dr = dt.NewRow(); 
    dr[0] = value; 
    dt.Rows.Add(dr); 
} 
data.DataSource = dt; 

foreach (string value in listbox2.Items) 
{ 
    dr = dt.NewRow(); 
    dr[0] = value; 
    dt.Rows.Add(dr); 
} 
data.DataSource = dt; 

答えて

1
DataTable dt = new DataTable("MyTable"); 
dt.Columns.Add(new DataColumn("Name", typeof(string))); 
dt.Columns.Add(new DataColumn("Date", typeof(DateTime))); 

while (reader.Read()) 
{ 
    dr = dt.NewRow(); 
    //if (reader.Name == "Name") 
    //{ 
     // reader.Read(); <-- this isn't needed, you're already reading... 
     listbox1.Items.Add(reader[0].ToString()); 
     dr["Name"] = reader[0].ToString(); 
    //} 

    //if (reader.Name == "Date") 
    //{ 
     listbox2.Items.Add(reader[1].ToString()); 
     dr["Date"] = reader[1].ToString(); 
    //} 
    dt.Rows.Add(dr); 
} 
data.DataSource = dt; 
+0

私はジェレミーと一緒です。投票の上に:) –

+0

XMLファイルで各要素の新しい行が追加されました。 –

0
foreach (string value in listbox2.Items) 
     { 
      dr = dt.NewRow(); 
      dr[1] = value; 
      dt.Rows.Add(dr); 
     } 

変更インデックス0〜1

または名前によって直接アクセス列になり、より良い方法から。

foreach (string value in listbox2.Items) 
{ 
    dr = dt.NewRow(); 
    dr["Date"] = value; 
    dt.Rows.Add(dr); 
} 
0

あなたがlistbox1またはlistbox2 の値ごとに行を追加する必要がある場合は、同じように、単一のブークレを使用することができます:あなたは、両方のリストボックスを使用するための1つの行を追加する必要がある場合

while (reader.Read()) 
    { 
     if (reader.Name == "Name") 
     { 
      listbox1.Items.Add(reader.Value); 
      dr = dt.NewRow(); 
      dr["Name"] = value; 
      dt.Rows.Add(dr); 
     } 

     if (reader.Name == "Date") 
     { 
      listbox2.Items.Add(reader.Value); 
      dr = dt.NewRow(); 
      dr["Date"] = value; 
      dt.Rows.Add(dr); 
     }  
    } 

Jeremy Thompson回答

関連する問題