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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天学到视频的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();
        }
    }
}

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

7 个回复

正序浏览
今天学到视频的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();
         }
     }
}


求解啊,各位大虾帮忙啊!!!!!
回复 使用道具 举报
不知道仁兄的问题解决没有,解决了就贡献一下你的方法,谢谢!!
回复 使用道具 举报
谢谢各位大哥!{:soso_e113:}
回复 使用道具 举报
哎,见过很多人问过这样的问题了,都是VS控件惹的祸,你如果在Sql Server中建数据库,自己写数据库连接字符串,如果没有语法问题,我敢保证不会出现上面的问题,也不会在代码的开头还要添加杨中科老师那么一段神奇的代码保证数据库同步更新。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
    其实有一种方法,你首先建立一个数据集,然后在建立一个数据库,把数据库表拖过去,到app_config文件里找你数据库的连接字符串。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
按下面的步骤试一下:

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



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



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






你会看到一个连接字符串。你试试用这个字符串是否能用。

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
不是提示你,已存在同名的数据库了吗,你换个数据库的名字试试

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马