将行添加到数据表#2

时间:2012-02-15 12:54:27

标签: c# datatable

我有一个数据表,有些列是字符串,有些是十进制的。当我添加一行时,它会自动转换信息还是我必须自己转换它们?我需要在表中添加大量数据,目前我正在使用它:

DataRow row = dataTable.NewRow();
row["item1"] = Info[0];
row["Item2"] = Info[1];
row["item3"] = Info[2];
row["Item4"] = Convert.ToDecimal(Info[3]);

4 个答案:

答案 0 :(得分:1)

row [“...”]是一个对象,将采用任何类型。如果您的Info [n]是一个字符串,您可以根据需要将其转换为正确的类型。我不知道Info是否是一个集合,但如果是,为什么不这样做呢:

List<Info> infoList = new List<Info>();
infoList.Add(...); //Add item here.

foreach(Info info in infoList)
{
   DataRow row = dataTable.NewRow(); 
   row["item1"] = info.Item1; //where Item1 could be a string 
   row["Item2"] = info.Item2; //where Item2 could be an int
   row["item3"] = info.Item3; //Where Item3 could be a DateTime
   row["Item4"] = info.Item4; //Where Item4 could be a Decimal
}

答案 1 :(得分:1)

Alex Mendez请看一下这个链接:http://msdn.microsoft.com/en-us/library/system.data.datatable.newrow.aspx,我认为你错过了指定的代码行(见下文):

foreach(Info info in infoList)
{
   DataRow row = dataTable.NewRow(); 
   row["item1"] = info.Item1; //where Item1 could be a string 
   row["Item2"] = info.Item2; //where Item2 could be an int
   row["item3"] = info.Item3; //Where Item3 could be a DateTime
   row["Item4"] = info.Item4; //Where Item4 could be a Decimal
   dataTable.Rows.Add(row); //<-- You need to add this line to actually save the value to the Data Table
}

答案 2 :(得分:0)

查看文档:{​​{3}}

答案 3 :(得分:0)

如果没有输入您的DataTable,是的,您必须将数据转换为预期的类型,如果是类型化的DataTable,它会转换数据,如:

int number = "0";

您还可以设置列类型。