如何遍历数据表并将值加载到listview中。我的代码多次将同一行数据插入listview [英] How to loop through data table and load value into listview. my code insert the same row of data multiple times into listview

查看:115
本文介绍了如何遍历数据表并将值加载到listview中。我的代码多次将同一行数据插入listview的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 尝试 
{
con = new OleDbConnection(cs);
con.Open();
字符串 sql = SELECT ProductOrder.ConfigID ,ProductOrder.UnitPrice,ProductOrder.Quantity,ProductOrder.TotalAmount,Config.ProductCode,Config.Product,Config.Description From ProductOrder,Config其中ProductOrder.ConfigID = Config.ConfigID和ProductOrder.OrderNo Like' + Reg。 Text + %'group by ProductOrder.ConfigID,Config.ProductCode,Config.Product,Config.Description,ProductOrder.UnitPrice ,ProductOrder.Quantity,ProductOrder.TotalAmount具有PrOductOrder.ConfigID的总和(数量> 0)订单;
cmd = new OleDbCommand(sql,con);
rdr = cmd.ExecuteReader();
ListView1.Items.Clear();
int Count = 0 ;
while (rdr.Read())
{
Count = Count + 1 ;
if (Count > 1
{
MessageBox.Show(dtable.Rows.Count.ToString());
}


if (ListView1.Items.Count == 0
{
foreach
dtable中的DataRow行。行)
{


ListViewItem lvi = new ListViewItem(rdr [ ConfigID]。ToString());
lvi.SubItems.Add(rdr [ ConfigID]。ToString());
lvi.SubItems.Add(rdr [ ProductCode]。ToString());
lvi.SubItems.Add(rdr [ Product]。ToString());
lvi.SubItems.Add(rdr [ Description]。ToString());
lvi.SubItems.Add(rdr [ UnitPrice]。ToString());
lvi.SubItems.Add(rdr [ Quantity]。ToString());
lvi.SubItems.Add(rdr [ TotalAmount]。ToString());

// 将列表项添加到ListView
ListView1 .Items.Add(LVI);
}
}
}
rdr.Close();
con.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, 错误,MessageBoxButtons.OK,MessageBoxIcon.Error);
}

解决方案

参考: ADO.NET OleDbDataReader类 [ ^ ]


我认为在这种情况下,最好使用DataAdapter而不是DataReader。 />
从DataAdapter填充数据集 [ ^ ]



另见本文介绍如何将数据绑定到ListView:绑定ListView的数据 [ ^ ]

try
             {
                 con = new OleDbConnection(cs);
                 con.Open();
                 String sql = "SELECT ProductOrder.ConfigID,ProductOrder.UnitPrice, ProductOrder.Quantity, ProductOrder.TotalAmount,Config.ProductCode,Config.Product,Config.Description From ProductOrder,Config where ProductOrder.ConfigID=Config.ConfigID and ProductOrder.OrderNo Like '" + Reg.Text + "%' group by ProductOrder.ConfigID,Config.ProductCode,Config.Product,Config.Description,ProductOrder.UnitPrice,ProductOrder.Quantity,ProductOrder.TotalAmount having sum(quantity > 0) order by PrOductOrder.ConfigID";
                 cmd = new OleDbCommand(sql, con);
                 rdr = cmd.ExecuteReader();
                 ListView1.Items.Clear();
                 int Count = 0;
                 while (rdr.Read())
                 {
                     Count = Count + 1;
                     if (Count > 1)
                     {
                         MessageBox.Show(dtable.Rows.Count.ToString());
                     }

                    
                     if (ListView1.Items.Count == 0)
                     {
                         foreach (DataRow row in dtable.Rows)
                         {


                         ListViewItem lvi = new ListViewItem(rdr["ConfigID"].ToString());
                         lvi.SubItems.Add(rdr["ConfigID"].ToString());
                         lvi.SubItems.Add(rdr["ProductCode"].ToString());
                         lvi.SubItems.Add(rdr["Product"].ToString());
                         lvi.SubItems.Add(rdr["Description"].ToString());
                         lvi.SubItems.Add(rdr["UnitPrice"].ToString());
                         lvi.SubItems.Add(rdr["Quantity"].ToString());
                         lvi.SubItems.Add(rdr["TotalAmount"].ToString());

                         // Add the list items to the ListView
                          ListView1.Items.Add(lvi);
                         }
                     }
                 }
                 rdr.Close();
                 con.Close();
                 }
             catch (Exception ex)
             {
                 MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }

解决方案

Refer: The ADO.NET OleDbDataReader class[^]


I think you would be better off using a DataAdapter instead of a DataReader in this case.
Populating a DataSet from a DataAdapter[^]

Also see this article for how to bind data to a ListView: Data binding a ListView[^]


这篇关于如何遍历数据表并将值加载到listview中。我的代码多次将同一行数据插入listview的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆