文件名无效。检查数据库的文件名。 [文件名= E:\\ PractDB.sdf]
问题描述:
我知道已经有类似问题的帖子here。不过,我的问题在于开发计算机本身。文件名无效。检查数据库的文件名。 [文件名= E:\ PractDB.sdf]
我们有客户要求为Motorola MC 65(Window CE os)设备开发数据库驱动的应用程序。
以下因特网能够在设备上运行一个空的表单应用程序(连接到支架的设备)。
我创建了一个SQL Server Compact数据库,添加了一个表并向其中填充了数据。通过Visual Studio Server Explorer成功建立连接。
但是通过代码,我得到一个错误。
下面是我的连接字符串代码:
SqlCeConnection con = new SqlCeConnection();
con.ConnectionString = @"Persist Security Info = False;
Data Source = 'E:\\PractDB.sdf';
Password = 'password#123';
File Mode = 'shared read';
Max Database Size = 256;
Max Buffer Size = 1024";
con.Open();
请让我知道我错过了什么。在连接字符串中引用.sdf
数据库文件的正确方法是什么?
答
领先的@
字符表示您有一个未转义的字符串。没有转义字符和反斜杠(\
)没有做任何特殊的事情。
所以,当你有这样的:
'E:\\PractDB.sdf'
这两个反斜杠字符的是你的字符串的一部分。只要摆脱其中一个,你会没事的,假设真的是正确的路径和文件。
此外,你不应该需要引号。因此,最终连接字符串看起来像这样:
con.ConnectionString = @"Persist Security Info = False;
Data Source = E:\PractDB.sdf;
Password =password#123;
File Mode = shared read;
Max Database Size = 256;
Max Buffer Size = 1024;";
但是,快速谷歌检查该设备显示它运行Windows Mobile 6.5。怀疑E:\
驱动器是该数据库或任何数据库的正确路径,因为Windows Mobile从未使用驱动器号。不幸的是,我必须更多地了解您的应用程序的部署方式,然后才能提供有关您实际应用的更具体信息。
答
Windows CE不使用驱动器号。
如果数据库存储在根文件夹中,只需使用\PractDB.sdf
即可。
通常在Windows CE上,您不使用驱动器号 – ErikEJ