黑马程序员技术交流社区

标题: 数据库连接问题。 [打印本页]

作者: 颜晋南    时间: 2012-10-20 01:11
标题: 数据库连接问题。
今天看视频,视频里面的的链接语句是这样的

  1. using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"))
复制代码
但是这样用,程序没效果,我改成绝对地址后:

  1. using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=e:\documents\visual studio 2010\Projects\exam2\test9\Database1.mdf;Integrated Security=True;User Instance=True"))
复制代码
后就正常了,有人知道什么问题吗?为什么=|DataDirectory| 不能用?
作者: 给生活加点料    时间: 2012-10-20 01:13
抢沙发喽。
作者: 康子龙    时间: 2012-10-20 03:33
数据库连接字符串不是应该写在配置文件的么?据说那样的话更合理。。。。。
作者: 颜晋南    时间: 2012-10-20 08:26
康子龙 发表于 2012-10-20 03:33
数据库连接字符串不是应该写在配置文件的么?据说那样的话更合理。。。。。 ...

没错,但是首先要能用。写在源代码方便调试,如果可以用的话,在按照视频里面说的,放在 配置文件。不然到时候出问题,都不知道哪里问题。
作者: 谷黎明    时间: 2012-10-21 17:35
"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"中“|DataDirectory”必须放配置文件中才能识别为相对路径。
你写的是硬编码在程序中,程序认为是一个字符,无法识别为相对路径。
作者: 黑马杨锦喜    时间: 2012-10-21 23:48
奇葩,怎么我的就行?可不可以将错图提示截图看看?

说说我 的看法:
DataDirectory 是表示数据库路径的替换字符串,由于无需对完整路径进行硬编码,DataDirectory 简化了项目的共享和应用程序的部署;
使用 DataDirectory 时,目录结构中的结果文件的路径不能高于替代字符串指向的目录,即结果文件必须是DataDirectory所指向的目录的子孙文件,否则产生异常。
那么很有可能就是你这里的DataDirectory指的并不是e:\documents\visual studio 2010\Projects\exam2\test9,而是e:\documents之类的,此时目录结构中的结果文件的路径就高于替代字符串指向的目录了,则报错。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2