C#中获取DataTable中的某一列数据,存入List<T>
Field 需要用到System.Data.DataSetExtensions
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
namespace ConsoleApplication108
{
class Program
{
static void Main(string[] args)
{
DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Qty", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Rows.Add(new object[] { 0, 321, 33 });
dt.Rows.Add(new object[] { 1, 100, 4 });
dt.Rows.Add(new object[] { 2, 355, 23 });
List<int> results = dt.AsEnumerable().Select(x => x.Field<int>("Qty")).ToList();
foreach(var i in results)
{
Console.WriteLine(i);
}
Console.ReadKey();
}
}
}
datatable 中增加一行数据的2 种方法:
1. 列数可能为动态列数
System.Data.DataRow dr = table.NewRow();
table.Rows.Add(dr);
dr[0] = logData.name;
dr[1] = logData.time;
for (int i = 0; i <= this.PropertyNames.Value.Count - 1; i++)
{
dr[i + 2] = logData.values[i];
}
2. 列数为固定列数:
table.Rows.Add(
new object[]
{
logData.name,
logData.time,
logData.value
}
);