C#에서 MySQL 데이터베이스에 CSV 파일을로드하려고하는데 계속 예외가 발생하여 결과 집합에서 읽을 수 없습니다. MySQL Workbench에서 DB2 Workbench의 CSV 파일을 오류없이로드 할 수있는 구문이 있습니다. 내 프로그램에서 그것을 시도하면서, 나는 여전히 예외를 얻는다. 현재 작업하고있는 파일에는이 경로와 파일 이름이 있습니다.CSV를 MySQL에로드하는 것은이 버그입니까? - 파일을 찾을 수 없음 예외
D:\SANCentral\Customer Files\ibm\70738\0918\switch port.csv
예외는 '결과를 읽을 수 없습니다'입니다. 내부 예외를 보면 나는이 파일을 찾을 수 없다. 그게 어디에서 왔는지 전혀 모르겠습니다. D : \ Projects \ CSVParser는 프로젝트의 위치입니다. MySQL.Data.Client 클래스가 파일을 여는 위치와 함께 뭔가를하고 있다고 가정합니다. 이것은 SQL 명령이 파일을로드하려고하는 경로입니다.
{"Could not find file 'D:\\Projects\\CSVParser\\CSVParser\\bin\\Debug\\SANCentralCustomer Filesibm70738'
.":"D:\\Projects\\CSVParser\\CSVParser\\bin\\Debug\\SANCentralCustomer Filesibm70738"}
어떻게 해결할 수 있습니까? 디버거에서 파싱 할 파일의 경로를 확인했는데 정확합니다. .CSV 파일을 프로젝트 디렉토리에서 프로젝트를 실행하고있는 곳으로 옮겨 보았습니다. 예외가 발생했지만 경로가 아닌 파일이 발견되지 않습니다.
여기에 부하를 할 수있는 C# 코드, 그리고 MySQL의 문 :
string ConnectionString = String.Format(@"server=localhost;userid={0};
password={1};database=PerformanceMonitors;
Allow User Variables=True", user,password);
MySqlConnection sqlconnect = new MySqlConnection(ConnectionString);
sqlconnect.Open();
여기 MySQL의 문 및 쿼리를 exccuting입니다. 죄송 문자열이 좀 깁니다
Port Send Packet Size
string working = String.Format(@"LOAD DATA LOCAL INFILE '{0}' IGNORE
INTO TABLE {1} COLUMNS TERMINATED BY ',' LINES TERMINATED BY '\n'
IGNORE 1 LINES (`Switch`,`Port`,`WWPN`,@the_slot,`Port Index`,@the_time,
`Interval`,`Port Send Packet Rate`,
`Port Receive Packet Rate`,`Total Port Packet Rate`,`Port Send Data Rate`,
`Port Receive Data Rate`,`Total Port Data Rate`,
Peak Send Data Rate`,`Port Peak Receive Data Rate`,
,
Port Receive Packet Size
,
Overall Port Packet Size
,
Error Frame Rate
,
Dumped Frame Rate
,
Link Failure Rate
,
Loss of Sync Rate
,
Loss of Signal Rate
,
CRC Error Rate
,
Short Frame Rate
,
Long Frame Rate
,
Encoding Disparity Error Rate
,
Discarded Class3 Frame Rate
,
F-BSY Frame Rate
,
F-RJT Frame Rate
,,210
Port Send Bandwidth Percentage
,
Port Receive Bandwidth Percentage
,
Overall Port Bandwidth Percentage
,
Primitive Sequence Protocol Error Rate
,
Invalid Transmission Word Rate
,
Link Reset Transmitted Rate
,
Link Reset Received Rate
)
SET Slot = nullif(@the_slot,''), Time= str_to_date(@the_time,'%m/%d/%y %h:%i %p')", files.FirstOrDefault().ToString(), "by_switch");
string commandreplaced= working.Replace("\n", "");
MySqlCommand cmd = new MySqlCommand(commandreplaced,sqlconnect);
cmd.ExecuteNonQuery();
오우 파일을 OLEDB를 사용하여 데이터 테이블에로드 할 수 있으므로 파일 경로가 알 수 있습니다. 나는 그것이 MySQL의 문제라고 생각한다. 데이터 라이브러리, 나는 그것을 고치는 방법을 모른다. –