【发布时间】:2016-03-21 01:19:57
【问题描述】:
我正在尝试将 1 天添加到某个数据列 ['RecordAddedDate'] 中的所有日期
csvData.Columns.AddRange(new DataColumn[3] {
new DataColumn("Manufacturer", typeof(string)),
new DataColumn("SupplierCode", typeof(string)),
new DataColumn("RecordAddedDate", typeof(DateTime))});
目前我有这个工作:
for (int rowIndex = 0; rowIndex < csvData.Rows.Count; rowIndex++)
{
DateTime dt2 = DateTime.Parse(fieldData[2]);
var newDate = dt2.AddDays(1);
csvData.Rows[rowIndex][2] = newDate;
}
但它只会将 1 天添加到从 csv 读取的第一行,而不会添加其余部分。
有什么帮助吗?
这是从 csv 读取数据并添加数据的 while 循环
while (!csvReader.EndOfData)
{
string[] fieldData = csvReader.ReadFields();
//Making empty value as null
for (int i = 0; i < fieldData.Length; i++)
{
Console.WriteLine(fieldData[i]);
if (fieldData[i] == "")
{
fieldData[i] = null;
}
for (int rowIndex = 0; rowIndex < csvData.Rows.Count; rowIndex++)
{
DateTime dt2 = csvData.Rows[rowIndex].Field<DateTime>(2);
DateTime newDate = dt2.AddDays(1);
csvData.Rows[rowIndex][2] = newDate;
}
}
csvData.Rows.Add(fieldData);
Console.WriteLine("Rows count:" + csvData.Rows.Count);
}
}
return csvData;
【问题讨论】:
-
这里的
fieldData是什么?你不应该从csvData.Rows[rowIndex][2]开始吗? -
csvData 是数据表。我现在将行索引编辑为一个较小的 int,因为它是一个大表,我不想在这篇文章中全部添加。
-
为什么不使用 SSIS 将数据从 CSV 移动到 Excel?如果需要,它支持从 Excel 导入和自定义操作。
-
我没有问过
csvData——这似乎相当明显。我询问了fieldData,这是你用来获取初始值的。一个简短但完整的程序演示该问题会更容易帮助您。 -
对不起,我错过了阅读。 fieldData 是从 csv 输入到数组中的行数据。我也更新了我原来的帖子。
标签: c# csv datetime sqlbulkcopy datacolumn