黑马程序员技术交流社区

标题: VS2010在连接数据库时失败,请大家支个招? [打印本页]

作者: 张学良    时间: 2012-3-25 12:34
标题: VS2010在连接数据库时失败,请大家支个招?
今天学到视频的ADO.NET,可是运行如下代码的时候出现了错误,在conn.Open();这里出现了问题,而且控制台没有输出.下面是VS给出的解释.
---------------------------------------------------------------------
未处理 System.Data.SqlClient.SqlException
尝试为文件 D:\My Documents\Visual Studio 2010\Projects\0317\第一个mdf\bin\Database1.mdf 附加自动命名的数据库,但失败。已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中。
---------------------------------------------------------------------

不知道该怎么解决这个问题了,请大家帮帮小弟一把.O(∩_∩)O谢谢

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace 第一个mdf
{
    class Program
    {
        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();
        }
    }
}


作者: 陈东    时间: 2012-3-25 13:18
不是提示你,已存在同名的数据库了吗,你换个数据库的名字试试
作者: 柏云杉    时间: 2012-3-25 13:19
按下面的步骤试一下:

首先在vs左边的服务器资源管理器视图里添加一个数据库连接。
下图:



然后在弹出的对话框中填写以下信息:服务器名(电脑上装的sqlserver的服务器名)、数据库名



点确定后会在vs的服务器资源管理器视图里出现了一个数据库连接。右键点他属性






你会看到一个连接字符串。你试试用这个字符串是否能用。
作者: 蔚强    时间: 2012-3-25 13:53
    其实有一种方法,你首先建立一个数据集,然后在建立一个数据库,把数据库表拖过去,到app_config文件里找你数据库的连接字符串。
作者: 许前刚    时间: 2012-3-25 15:17
哎,见过很多人问过这样的问题了,都是VS控件惹的祸,你如果在Sql Server中建数据库,自己写数据库连接字符串,如果没有语法问题,我敢保证不会出现上面的问题,也不会在代码的开头还要添加杨中科老师那么一段神奇的代码保证数据库同步更新。
作者: 张学良    时间: 2012-3-26 11:26
谢谢各位大哥!{:soso_e113:}
作者: 饮马长河    时间: 2012-8-9 16:54
不知道仁兄的问题解决没有,解决了就贡献一下你的方法,谢谢!!
作者: 饮马长河    时间: 2012-8-9 20:31
今天学到视频的ADO.NET,可是运行如下代码的时候出现了错误,在conn.Open();这里出现了问题,而且控制台没有输出.下面是VS给出的解释.
---------------------------------------------------------------------
未处理 System.Data.SqlClient.SqlException
尝试为文件 D:\My Documents\Visual Studio 2010\Projects\0317\第一个mdf\bin\Database1.mdf 附加自动命名的数据库,但失败。已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中。
---------------------------------------------------------------------

不知道该怎么解决这个问题了,请大家帮帮小弟一把.O(∩_∩)O谢谢

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace 第一个mdf
{
     class Program
     {
         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();
         }
     }
}


求解啊,各位大虾帮忙啊!!!!!




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