listview与datatable之间的转换

本文介绍了一个简单实用的类,用于实现Listview与Datatable之间的数据转换。该类包含两个静态方法:一个用于将Datatable填充到Listview中,另一个则相反,将Listview的数据填充到Datatable。
摘要由CSDN通过智能技术生成

 

 

 

涉及到数据库的编程,经常需要在listview与datatable之间传递数据,写了个简单的类,备用。

 


 1  using  System;
 2  using  System.Collections.Generic;
 3  using  System.Text;
 4  using  System.Data;
 5  using  System.Data.SqlClient;
 6  using  System.Data.OleDb;
 7  using  System.Windows.Forms;
 8  using  System.Drawing;
 9 
10 
11  namespace  ListViewFill
12  {
13       class  ListViewFill
14      {
15           // fill the listview
16           static   public   void  dataTableToListview(ListView lv, DataTable dt)
17          {
18               if  (dt  !=   null )
19              {
20                  lv.Items.Clear();
21                  lv.Columns.Clear();
22                   for  ( int  i  =   0 ; i  <  dt.Columns.Count; i ++ )
23                  {
24                      lv.Columns.Add(dt.Columns[i].Caption.ToString());
25                  }
26                   foreach  (DataRow dr  in  dt.Rows)
27                  {
28                      ListViewItem lvi  =   new  ListViewItem();
29                      lvi.SubItems[ 0 ].Text  =  dr[ 0 ].ToString();
30 
31                       for  ( int  i  =   1 ; i  <  dt.Columns.Count; i ++ )
32                      {
33                          lvi.SubItems.Add(dr[i].ToString());
34                      }
35 
36                      lv.Items.Add(lvi);
37                  }
38                  lv.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
39              }
40          }
41           static   public   void  listViewToDataTable(ListView lv,DataTable dt)
42          {
43               int  i, j;
44              DataRow dr;
45              dt.Clear();
46              dt.Columns.Clear();
47               // 生成DataTable列头
48               for  (i  =   0 ; i  <  lv.Columns.Count; i ++ )
49              {
50                  dt.Columns.Add(lv.Columns[i].Text.Trim(),  typeof (String));
51              }
52               // 每行内容
53               for  (i  =   0 ; i  <  lv.Items.Count; i ++ )
54              {
55                  dr  =  dt.NewRow();
56                   for  (j  =   0 ; j  <  lv.Columns.Count; j ++ )
57                  {
58                      dr[j]  =  lv.Items[i].SubItems[j].Text.Trim();
59                  }
60                  dt.Rows.Add(dr);
61              }
62          }
63      }
64  }
65 

 

 

转载于:https://www.cnblogs.com/cthulhu/archive/2010/10/29/1864492.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值