我有一个数据表,有些列是字符串,有些是十进制的。当我添加一行时,它会自动转换信息还是我必须自己转换它们?我需要在表中添加大量数据,目前我正在使用它:
DataRow row = dataTable.NewRow();
row["item1"] = Info[0];
row["Item2"] = Info[1];
row["item3"] = Info[2];
row["Item4"] = Convert.ToDecimal(Info[3]);
答案 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";
您还可以设置列类型。