Мне нужно загрузить файлы excel, у меня есть файлы excel с правильным форматом, у меня есть столбец, который содержит большие числа, поэтому в excel он отображает числа с помощью Exponent, например, у меня есть это значение 8.99681E + 18 (8996812351321100000)Загрузка файла Excel Изменение типа данных
Я делаю DataTable, читая его во время выполнения, после создания Datatable это значение изменилось с (8996812351321100288). Это, как я делаю
var conn = new OleDbConnection();
if (fileExtension == ".xls")
//4.0 Connection String
if (fileExtension == ".xlsx")
//12.0 Connection String
conn.Open();
DataTable dtSheets = conn.GetSchema("Tables");
string firstSheet = dtSheets.Rows[0]["TABLE_NAME"].ToString();
using (var comm = new OleDbCommand())
{
comm.CommandText = "select * from [" + firstSheet + "]";
comm.Connection = conn;
using (var da = new OleDbDataAdapter())
{
da.SelectCommand = comm;
da.Fill(dt);
if (dt.Columns.Contains("SIMNo"))
{
DataTable dtCloned = dt.Clone();
dtCloned.Columns["SIMNo"].DataType = typeof(Int64);
foreach (DataRow row in dt.Rows)
{
dtCloned.ImportRow(row);
}
return dtCloned;
}
return dt;
}
}
Есть ли способ, что я могу изменить тип данных SIMNo во время выполнения, прежде чем creaating DataTable? И как я могу это сделать?
литья 8996812351321100000 к двойному из длинной урожайности 8,9968123513211E + 18, является то, что вы хотите вместо того, что когда-либо вы пытаетесь сделать здесь? –
В чем проблема? Это в 'dt' или в' dtCloned'? –
@TimRogers его в dtCloned –