У меня есть соединение OLDB для чтения файла CSV в набор данных.Теперь в CSV у меня есть столбец типа 3,00 или 15,00 (это сумма в евро), но когда я вызываю метод .Fill в OdbcDataAdapter, он меняет значение на DateTime.Это код, который я использую для чтения CSV и преобразования его в набор данных:
DataSet ds = new DataSet();
try
{
// Creates and opens an ODBC connection
string strConnString = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + filePath.Trim() + ";Extensions=asc,csv,tab,txt;Persist Security Info=False";
string sql_select;
OdbcConnection conn;
conn = new OdbcConnection(strConnString.Trim());
conn.Open();
//Creates the select command text
sql_select = "select * from [" + this.fileName.Trim() + "]";
//Creates the data adapter
OdbcDataAdapter obj_oledb_da = new OdbcDataAdapter(sql_select, conn);
//Fills dataset with the records from CSV file
obj_oledb_da.Fill(ds, "csv");
//closes the connection
conn.Close();
}
catch (Exception e) //Error
{
MessageBox.Show(e.Message, "Error - LoadCSV", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return ds;
Запись CSV выглядит следующим образом:
2005 2 20 7024 0 0 2900 14 19 0,00 3,00 3,00 0,00 0,00 0,00 15,80 18,80 0,00 0,00 90014 99999998 99999998 0 0 23/02/2005 0 stt 7024 15,80 0,00 N 60376940043 fis
Запись, полученная из набора данныхвыглядит так:
2005 2 20 7024 0 0 2900 14 19 30-12-1899 0:00:00 30-12-1899 15:26:00 30-12-1899 15:26:00 30-12-1899 0:00:00 30-12-1899 0:00:00 30-12-1899 0:00:00 80,33 95,59 30-12-1899 0:00:00 30-12-1899 0:00:00 92705 99999998 99999998 0 0 23-2-2005 0:00:00 0 stt 7024 80,33 30-12-1899 0:00:00 N fis
Что мне здесь не хватает?Потому что запись DataSet должна быть точно такой же, как запись CSV.Мне нужно преобразовать CSV в DataSet, потому что я не хочу добавлять каждую отдельную строку в базу данных, поэтому я сразу вставляю DataSet в базу данных (это модуль импорта)
Кто мне может помочьс этим?
Заранее спасибо!