• listview与datatable之间的转换


    涉及到数据库的编程,经常需要在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 
  • 相关阅读:
    parallel desktop ubuntu从18.04更新到20.04(包括安装Parallels Tools)
    一段奇怪的R代码
    ipynb(jupyter notebook)的git管理的比较好的方式
    对比jupyterlab和jupyter notebook
    dotfiles的管理
    macvim报出一些奇怪的错误: macvim只能从命令行启动
    CSS3学习笔记(三、选择器-续)
    CSS3学习笔记(二、选择器)
    CSS3学习笔记(一、CSS介绍、语法、引入方式)
    HTML学习笔记(四、body内常用标签)
  • 原文地址:https://www.cnblogs.com/cthulhu/p/1864492.html
Copyright © 2020-2023  润新知