C# 如何将Listview转换为DataTable
我见过许多从datatable填充listview或将datatable转换为listview的示例,但我尝试的正是相反的方法 如何将winform listview的内容转换/复制到datatable [编辑] 我有一个带有上下文菜单的listview,用户可以在其中选择多个项目并选择其中一个上下文菜单选项,然后循环所选项目并提取每个所选行(listview项目)并序列化它,与此相反,我希望将listview转换为datatable,然后将datatable添加到dataset并序列化dataset 谢谢诸如此类的东西(完全未经测试) 类似的(完全未经测试)C# 如何将Listview转换为DataTable,c#,vb.net,winforms,listview,datatable,C#,Vb.net,Winforms,Listview,Datatable,我见过许多从datatable填充listview或将datatable转换为listview的示例,但我尝试的正是相反的方法 如何将winform listview的内容转换/复制到datatable [编辑] 我有一个带有上下文菜单的listview,用户可以在其中选择多个项目并选择其中一个上下文菜单选项,然后循环所选项目并提取每个所选行(listview项目)并序列化它,与此相反,我希望将listview转换为datatable,然后将datatable添加到dataset并序列化data
DataTable=newdatatable();
表.Columns.Add(“MODUL”,typeof(string));
表.Columns.Add(“ACIKLAMA”,typeof(string));
表.Columns.Add(“UZUNLUK”,typeof(string));
table.Columns.Add(“GENISLIK”,typeof(string));
表.Columns.Add(“MIKTAR”,typeof(string));
对于(int i=0;i
数据表=新数据表();
表.Columns.Add(“MODUL”,typeof(string));
表.Columns.Add(“ACIKLAMA”,typeof(string));
表.Columns.Add(“UZUNLUK”,typeof(string));
table.Columns.Add(“GENISLIK”,typeof(string));
表.Columns.Add(“MIKTAR”,typeof(string));
对于(int i=0;i
我觉得公认的答案不合适。以下是一个经过测试的替代方案:
public static void FromListView(DataTable table, ListView lvw)
{
table.Clear();
var columns = lvw.Columns.Count;
foreach (ColumnHeader column in lvw.Columns)
table.Columns.Add(column.Text);
foreach (ListViewItem item in lvw.Items)
{
var cells = new object[columns];
for (var i = 0; i < columns; i++)
cells[i] = item.SubItems[i].Text;
table.Rows.Add(cells);
}
}
来自ListView的公共静态void(DataTable表,ListView lvw)
{
表1.Clear();
var columns=lvw.columns.Count;
foreach(lvw.Columns中的ColumnHeader列)
table.Columns.Add(column.Text);
foreach(lvw.Items中的ListViewItem项)
{
变量单元格=新对象[列];
对于(变量i=0;ipublic static void FromListView(DataTable table, ListView lvw)
{
table.Clear();
var columns = lvw.Columns.Count;
foreach (ColumnHeader column in lvw.Columns)
table.Columns.Add(column.Text);
foreach (ListViewItem item in lvw.Items)
{
var cells = new object[columns];
for (var i = 0; i < columns; i++)
cells[i] = item.SubItems[i].Text;
table.Rows.Add(cells);
}
}
来自ListView的公共静态void(DataTable表,ListView lvw)
{
表1.Clear();
var columns=lvw.columns.Count;
foreach(lvw.Columns中的ColumnHeader列)
table.Columns.Add(column.Text);
foreach(lvw.Items中的ListViewItem项)
{
变量单元格=新对象[列];
对于(变量i=0;ipublic static void FromListView(DataTable table, ListView lvw)
{
table.Clear();
var columns = lvw.Columns.Count;
foreach (ColumnHeader column in lvw.Columns)
table.Columns.Add(column.Text);
foreach (ListViewItem item in lvw.Items)
{
var cells = new object[columns];
for (var i = 0; i < columns; i++)
cells[i] = item.SubItems[i].Text;
table.Rows.Add(cells);
}
}