我有一个字符串列表,我需要将其转换为Datarow。 我试过了
toReturn.Add("UserID");
toReturn.Add("UserName");
DataRow row = null;
row.ItemArray=toreturn.ToArray();
这给我一个例外
Object reference not set to an instance of an object.
所以我尝试了
DataRow Row=new DataRow();
这也是不允许的。可以帮助我。
答案 0 :(得分:8)
DataRow
只能与DataTable
一起存在。
使用适当的列创建DataTable
,然后调用table.Rows.Add(list.ToArray())
。
但是,您可能不应该首先使用DataRow
。
答案 1 :(得分:3)
您可以在DataRow
内创建DataTable
对象,就像SLaks指出的那样。
无论原因是什么......
DataTable dataTable = new DataTable();
dataTable.Columns.Add("Test");
foreach(string x in array)
{
DataRow dataRow = dataTable.NewRow();
dataRow["Test"] = x;
dataTable.Rows.Add(dataRow);
}
现在,您可以使用DataTable
对象执行任何操作...
答案 2 :(得分:0)
答案 3 :(得分:0)
试试这个,它为我工作!!!
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace testApp
{
class Program
{
static void Main(string[] args)
{
List<string> toReturn = new List<string>();
toReturn.Add("UserID");
toReturn.Add("UserName");
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("UserID"));
dt.Columns.Add(new DataColumn("UserName"));
DataRow row = dt.NewRow();
row.ItemArray = toReturn.ToArray();
dt.Rows.Add(row);
}
}
}
答案 4 :(得分:0)
string [] array=new string[length]{1,2,3,...}
DataTable dt=new DataTable();
DataRow toInsert = dt.NewRow();
toInsert.ItemArray = array;
dt.Rows.InsertAt(toInsert, desiredrownumber);
答案 5 :(得分:0)
如果您的List<string[]>
将列表的第一行作为标题,则可以执行以下操作:
var header = records.Select(it => it).First().ToList();
var values = records.Select(it => it).Skip(1).ToList();
foreach (var item in header)
dataTable.Columns.Add(item, typeof(string));
foreach (object[] value in values)
dataTable.Rows.Add(value);
return dataTable;