I have a csv reader class that reads a .csv
file and its values.... I have created datatable
out of it... Consider my Datatable
contains three header columns Name,EmailId,PhoneNo
.... The values have been added successfully.... Now i want to add two columns IsDeleted,CreatedDate
to this datatable
... I have tried this but it doesn't seem to work,
foreach (string strHeader in headers)
{
dt.Columns.Add(strHeader);
}
string[] data;
while ((data = reader.GetCSVLine()) != null)
{
dt.Rows.Add(data);
}
dt.Columns.Add("IsDeleted", typeof(byte));
dt.Columns.Add(new DataColumn("CreatedDate", typeof(DateTime)));
foreach (DataRow dr in dt.Rows)
{
dr["IsDeleted"] = Convert.ToByte(0);
dr["CreatedDate"] = Convert.ToDateTime(System.DateTime.Now.ToString());
dt.Rows.Add(dr);
}
dt.Rows.Add(dr);
shows an error saying This row already belongs to this table.
....
开发者_运维技巧alt text http://www.imagechicken.com/uploads/1273560975016964800.jpg
Why do you add the datarow again into the table?
Remove the line dt.Rows.Add(dr);
and edit the datatable directly like this dt.Rows[i]["IsDeleted"] = Convert.ToByte(0);
using a for loop
Use dt.Rows.Import, or dt.ImportRows, I forgot the name
or judging from your code, why you need the dt.Rows.Add? shouldn't that be omitted?
精彩评论