Error in Load Data infile query in C#
以下代码有问题:-
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
private void btnUpload_Click(object sender, EventArgs e) { string nm = txtFilename.Text; } private void btnBrowse_Click(object sender, EventArgs e) if (openfiledailog1.ShowDialog() == DialogResult.OK) txtFilename.Text = openfiledailog1.SafeFileName.ToString(); } |
如果我在查询中给出完整的文件路径,它会正常运行:-
string qry =”LOAD DATA INFILE ‘D:////HHTFiles//// ABC.txt’ INTO TABLE
//
‘(条形码,BinLoc);”;
但是当文件路径在字符串变量中传递时会引发错误。
错误:-
错误 [HY000] [MySQL][ODBC 5.1 驱动程序][mysqld-5.1.48-community] 找不到文件 ‘D:HHTFilesABC.txt’ (Errcode: 2)
@Aghilas 它得到了解决:) 虽然我不确定为什么我首先会出错。 Anway,我只是将 ‘////////’ 替换为 ‘/’ 并且运行良好。
1
2 3 4 5 6 7 |
string nm = txtFilename.Text;
StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("LOAD DATA INFILE"); stringBuilder.Append(Path.Combine("’D:/HHTFiles/", nm)); stringBuilder.Append("’ INTO TABLE `table1`.`location`FIELDS TERMINATED BY ‘–>’LINES TERMINATED BY ‘/ / ‘(Barcode,BinLoc);"); |
尝试使用 Path.Combine
1
|
Path.Combine("D:////HHTFiles/", nm);
|
并使用 StringBuilder 来构建您的查询
1
2 3 4 5 6 7 8 9 10 |
StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("LOAD DATA INFILE"); stringBuilder.Append(Path.Combine("D:////HHTFiles/", nm)); stringBuilder.Append(" INTO TABLE table1.location"); stringBuilder.Append(" FIELDS TERMINATED BY ‘–>’"); stringBuilder.Append(" LINES TERMINATED BY ("); stringBuilder.Append(Barcode.BinLoc); stringBuilder.Append(")"); string qry = stringBuilder.ToString(); |
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/269593.html