C# 数据库 连接字符串中本来就有双引号怎么办

连接字符串本来就是字符串,但是里面又有双引号的话就被截成几段,报错了,该怎么解决
比如说我的这个连接字符串是这样子的
Data Source=.\SQLEXPRESS;AttachDbFilename="D:\VS Projects\3层架构课程管理\DAL\Files\Database1.mdf";Integrated Security=True;User Instance=True

里面文件名的含有爽引号
另外,如果这样的话,写出来的程序换在别的地方怎么办啊,因为数据库的位置被定死了

第1个回答  2013-08-02
string str="Data Source=.\\SQLEXPRESS;AttachDbFilename=\"D:\\VS Projects\\3层架构课程管理\\DAL\\Files\\Database1.mdf\";Integrated Security=True;User Instance=True";
把字符串里面的\改成\\,把双引号"改成\"就行了。
如果字符串前面加@,那么\不用改成\\,只改双引号就行。
第2个回答  2013-08-02
假定你的mdf是跟exe位于同一目录下(比如都在bin下的debug中),那就可以这样写
private static string dbpath = Application.StartupPath + @"\Database1.mdf"; //用于WINFORM
//private static string dbpath = AppDomain.CurrentDomain.BaseDirectory+@"\Database1.mdf";
//用于类项目
然后比如
string connstr="Data Source=.\SQLEXPRESS;AttachDbFilename="+dbpath+";Integrated Security=True;User Instance=True";追问

那不在bin文件夹下就不能这样用么
如果程序换了地方是不是就不能用了

追答

你程序发布的时候是没有dal这种目录的,Application.StartupPath取的就是exe所在目录,无论你的软件目录位置怎么换,只要mdf相对于exe的路径没有变化,比如说mdf总在exe一起,或者比如说总在exe下的db目录(Application.StartupPath + @"\db\Database1.mdf"),那么上面的代码就是可以用的。

追问

application在那个命名空间啊,我这里好像没有这个

追答

上面不是已经写了么,你在winform里直接用的时候才能用这个,如果是在dal这种类或者类为为库中,要写做AppDomain.CurrentDomain.BaseDirectory

本回答被提问者采纳
第3个回答  2013-08-02
那你可以将连接字符串写在配置文件中
相似回答