黑马程序员技术交流社区

标题: 项目内嵌mdf文件的形式连接数据库时发生的异常怎么处理? [打印本页]

作者: 孤帆破浪    时间: 2013-6-2 08:58
标题: 项目内嵌mdf文件的形式连接数据库时发生的异常怎么处理?
本帖最后由 孤帆破浪 于 2013-6-3 17:30 编辑

用项目内嵌mdf文件的形式连接数据库,在网上搜了半天都没解决,求会的大神指点一下。
static void Main(string[] args)
        {
            string dataDir = AppDomain.CurrentDomain.BaseDirectory;
            if (dataDir.EndsWith(@"\bin\Debug\") || dataDir.EndsWith(@"\bin\Release\"))
            {
                dataDir = System.IO.Directory.GetParent(dataDir).Parent.FullName;
                AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
            }

            SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True");
            conn.Open();
            Console.WriteLine("打开数据库连接成功!");

            Console.ReadKey();

        }

注:已经创建了一个名为DataBase1的数据库。
在运行到conn.Open();这名代码的时候,程序报错,VS提示信息如下:
尝试为文件 D:\vs.2010\教程\第一个mdf\第一个mdf\bin\Database1.mdf 附加自动命名的数据库,但失败。已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中。

请问这是怎么回事,我尝试的好久都无法解决,急求大神解惑!谢谢!


作者: 孤帆破浪    时间: 2013-6-4 15:46
{:soso_e153:}没人碰到过这种问题么?哎!失望...{:soso_e103:}
作者: 李奔    时间: 2013-6-4 17:47
我也不太懂。
建议你先在SQL上建个同名的数据库,先把数据库错误信息排除掉,再看看VS的报错信息。

作者: 关关雎鸠    时间: 2013-6-5 10:31
遇到这样的情况,其实就是你的数据库已经有了一个同名的数据库,你再在VS中(VS自带了一个SQL SERVER)做操作的时候(比如附加)时候就会出错。

你这样吧,不要用VS自带的SQL SERVER,直接用你安装的SQL再试试。
作者: 孤帆破浪    时间: 2013-6-7 15:38
关关雎鸠 发表于 2013-6-5 10:31
遇到这样的情况,其实就是你的数据库已经有了一个同名的数据库,你再在VS中(VS自带了一个SQL SERVER)做操 ...

好吧!多谢这位仁兄,其实我就是这么做的,但我当时看视频学习的时候就是想试试VS自带的数据库,但就是怎么都连接不上,可我检查过好几遍了,同目录下没有同名的数据库啊。
作者: 孤帆破浪    时间: 2013-6-7 15:40
李奔 发表于 2013-6-4 17:47
我也不太懂。
建议你先在SQL上建个同名的数据库,先把数据库错误信息排除掉,再看看VS的报错信息。
...

多谢!我试试看吧!




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