У меня есть рабочий лист Excel, который я хочу прочитать в datatable - все хорошо, за исключением одного столбца в моем листе Excel. Столбец "ProductID" представляет собой сочетание значений, таких как ##########
и n#########
.
Я попытался позволить OleDB обрабатывать все сам по себе автоматически, читая его в наборе данных /datatable, но любые значения в "ProductID", например n######
, отсутствуют, игнорируется и остается пустым. Я попытался вручную создать свой DataTable, перейдя по каждой строке с помощью datareader, но с теми же результатами.
Здесь код:
// add the column names manually to the datatable as column_1, column_2, ...
for (colnum = 0; colnum < num_columns; colnum ++){
ds.Tables["products"].Columns.Add("column_" +colnum , System.Type.GetType("System.String"));
}
while(myDataReader.Read()){
// loop through each excel row adding a new respective datarow to my datatable
DataRow a_row = ds.Tables["products"].NewRow();
for (col = 0; col < num_columns; col ++){
try { a_row[col] = rdr.GetString(col); }
catch { a_row[col] = rdr.GetValue(col).ToString(); }
}
ds.Tables["products"].Rows.Add(a_row);
}
Я не понимаю, почему он не позволит мне читать значения, такие как n######
. Как я могу это сделать?