CSV 파일을 데이터 세트로 읽는 OLDB 연결이 있습니다. 이제는 CSV에서 3,00 또는 15,00 (유로 값입니다)과 같은 열이 있지만 OdbcDataAdapter .Fill 메서드를 호출하면 값이 DateTime으로 변경됩니다. 이 코드는 내가 CSV를 읽고 데이터 집합으로 변환하는 데 사용할 수 있습니다 :OLDB는 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을 한 번에 삽입합니다 (가져 오기 모듈 임)
누가이 문제를 도와 드릴 수 있습니까? ?
미리 감사드립니다.
내가 누락 된 파일입니까? 파일을 쉼표로 구분했거나 탭으로 구분 했습니까? 소수점으로 콤마로 쉼표로 구분 된 파일입니까? 그것은 몇 가지 문제를 일으킬 수 있습니다. 파일의 정확한 형식을 게시 할 수 있습니까? – Brett
아마도'.'로 바꾸려면 쉼표가 필요합니다. 이제는 시간으로 해석됩니다. 저의 겸손한 견해. –
죄송 합니다만 언급하지 않았지만 탭 구분 ... ','을 '.'로 빠르게 대체 할 수 있습니다. 코드 또는 메모장 + + 또는 뭔가 그것을 바꿔야합니까? – CyberK