关于 mysql:Error in Load Data infile query in C#
Error in Load Data infile query in C#
以下代码有问题:-
|
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,我只是将 '\\\\\\\\' 替换为 '/' 并且运行良好。
|
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
|
Path.Combine("D:\\\\HHTFiles\", nm);
|
并使用 StringBuilder 来构建您的查询
|
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(); |
相关讨论
- 感谢您的快速回复。我尝试了您的代码,但仍然收到较早的错误。错误 [HY000] [MySQL][ODBC 5.1 驱动程序][mysqld-5.1.48-community] 找不到文件 \\'D:HHTFilesABC.txt\\' (Errcode: 2)
- 很高兴回复您,验证路径上是否存在 D:HHTFiles/ABC.txt
-
是的,指定路径中存在 ABC.txt 文件。我什至在上面的代码上应用了断点。它显示 qry="LOAD DATA INFILE \\'D:\\\\\\\\\\\\\\\\HHTFiles\\\\\\\\\\ \\\\\\ABC.txt\\' INTO TABLE
table1 .location 字段由 \\'-->\\'行终止于 \\'\\\\
\\\\
\\'(Barcode,BinLoc);"。如果我在 Mysql 编辑器上运行此查询,它运行良好并且 1 行受到影响。但是相同的查询在 C# 中不起作用。我很困惑... - 您好 RookieCoder 尝试使用新查询我更新它们,测试并告诉我响应