Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果特殊字符如下,则在access中追加查询不执行;[]数据库文件路径中存在etc_C#_Ms Access_Ado.net_Append - Fatal编程技术网

C# 如果特殊字符如下,则在access中追加查询不执行;[]数据库文件路径中存在etc

C# 如果特殊字符如下,则在access中追加查询不执行;[]数据库文件路径中存在etc,c#,ms-access,ado.net,append,C#,Ms Access,Ado.net,Append,我正在尝试用C#执行以下代码 请注意,此处数据库文件的名称为“abc;def.mdb” 它未能给出以下例外情况 {“找不到文件'C:\\Users\\E330722\\Desktop\\abc'。} 它只考虑到“;”的数据库文件路径,而不考虑整个字符串。我如何解决这个问题?我无法重命名文件名和/或修改路径,因为它们是不应更改的动态输入 如果我将文件从“abc;def.mdb”重命名为“abcdef.mdb”,则此查询执行良好。i、 例如,从文件名中删除特殊字符“;” 我尝试了几种选项,比如在db

我正在尝试用C#执行以下代码

请注意,此处数据库文件的名称为“abc;def.mdb”

它未能给出以下例外情况

{“找不到文件'C:\\Users\\E330722\\Desktop\\abc'。}

它只考虑到“;”的数据库文件路径,而不考虑整个字符串。我如何解决这个问题?我无法重命名文件名和/或修改路径,因为它们是不应更改的动态输入

如果我将文件从“abc;def.mdb”重命名为“abcdef.mdb”,则此查询执行良好。i、 例如,从文件名中删除特殊字符“;”


我尝试了几种选项,比如在db文件路径周围加双引号“”,加单引号“”,以及将FROM的完整连接字符串加双引号和单引号。但是:-(

程序执行时有一个默认路径,因此在执行dbcommand.ExecuteNonQuery()命令之前,您应该能够将默认路径更改为所需的子目录


您必须解析字符串以将其分解为路径和文件名,这应该不会太糟糕。然后在调用DoCommand.ExecuteNonQuery()之前,在连接字符串中使用文件名并使用路径设置默认路径。

能否将有问题的文件复制到另一个具有更可接受名称的文件中?
string selQuery = "INSERT INTO [C:\MyDbs\destination.accdb].[Table1] ([No],[Name]) SELECT [No],[Name] FROM [MS Access;DATABASE=C:\MyDbs\abc;def.mdb;pwd=honeywellvft].[Table1]";

dbcommand.CommandText = selQuery;
dbcommand.CommandType = CommandType.Text;
dbcommand.Connection = myConnObj;
dbcommand.ExecuteNonQuery();