A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

孤帆破浪

中级黑马

  • 黑马币:0

  • 帖子:31

  • 精华:0

本帖最后由 孤帆破浪 于 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 共享目录中。

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

5 个回复

倒序浏览
{:soso_e153:}没人碰到过这种问题么?哎!失望...{:soso_e103:}
回复 使用道具 举报
我也不太懂。
建议你先在SQL上建个同名的数据库,先把数据库错误信息排除掉,再看看VS的报错信息。
回复 使用道具 举报
遇到这样的情况,其实就是你的数据库已经有了一个同名的数据库,你再在VS中(VS自带了一个SQL SERVER)做操作的时候(比如附加)时候就会出错。

你这样吧,不要用VS自带的SQL SERVER,直接用你安装的SQL再试试。
回复 使用道具 举报
关关雎鸠 发表于 2013-6-5 10:31
遇到这样的情况,其实就是你的数据库已经有了一个同名的数据库,你再在VS中(VS自带了一个SQL SERVER)做操 ...

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

多谢!我试试看吧!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马