Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tải CSV vào MySQL Đây có phải là lỗi không? - Không tìm thấy tệp ngoại lệ

Cuối cùng thì tôi cũng đã tìm ra câu trả lời. câu lệnh LOAD DATA FILE yêu cầu tên tệp là một giá trị chuỗi, nó không thể được tham số hóa. Thật không may, lớp MySQLCommand không thích thoát \ trong đường dẫn tệp của đối tượng chuỗi C # nên nó không thể tìm thấy tệp. Tôi bắt nó hoạt động bằng cách thoát khỏi những cuộc trốn chạy do đó:

//build the LOAD DATA File command
string working = String.Format("LOAD DATA LOCAL INFILE '{0}' IGNORE ", files.FirstOrDefault().ToString()) +
                         String.Format("INTO TABLE {0} COLUMNS TERMINATED BY ',' LINES TERMINATED BY '\n'", "by_switch")+
                         String.Format(" IGNORE 1 LINES (`Switch`,`Port`,`WWPN`,@the_slot,`Port Index`,@the_time,`Interval`,`Port Send Packet Rate`,")+
                         String.Format("`Port Receive Packet Rate`,`Total Port Packet Rate`,`Port Send Data Rate`,")+        
                         String.Format("`Port Receive Data Rate`,`Total Port Data Rate`,`Port Peak Send Data Rate`,`Port Peak Receive Data Rate`,")+ 
                         String.Format("`Port Send Packet Size`,`Port Receive Packet Size`,`Overall Port Packet Size`,`Error Frame Rate`,")+
                         String.Format("`Dumped Frame Rate`,`Link Failure Rate`,`Loss of Sync Rate`,`Loss of Signal Rate`,`CRC Error Rate`,")+
                         String.Format(" `Short Frame Rate`,`Long Frame Rate`,`Encoding Disparity Error Rate`,")+         
                         String.Format("`Discarded Class3 Frame Rate`,`F-BSY Frame Rate`,`F-RJT Frame Rate`, `Port Send Bandwidth Percentage`,")+
                         String.Format("`Port Receive Bandwidth Percentage`, `Overall Port Bandwidth Percentage`,`Primitive Sequence Protocol Error Rate`,")+
                         String.Format("`Invalid Transmission Word Rate`,`Link Reset Transmitted Rate`,`Link Reset Received Rate`)")+ 
                          String.Format("SET Slot = nullif(@the_slot,''),")+ 
                          String.Format(@"Time= str_to_date(@the_time,'%m/%d/%y %h:%i %p')");


// now escape the escape character
       commandreplaced = commandreplaced.Replace(@"\", @"\\");

   // now execute the command
        MySqlCommand cmd = new MySqlCommand(commandreplaced,sqlconnect);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mySql sao chép các hàng vào cùng một bảng với giá trị khóa đã thay đổi (không ghi đè hiện có)

  2. Django syncdb hoạt động trong SQLite, không thành công trong MySQL

  3. Điều kiện ngày sử dụng logic Tìm kiếm

  4. Mã lỗi:2013. Mất kết nối với máy chủ MySQL trong khi truy vấn

  5. Hình phạt hiệu suất cho các truy vấn mysql lồng nhau