【问题标题】:set the way to the data source in connection string在连接字符串中设置到数据源的方式
【发布时间】:2011-12-04 22:57:34
【问题描述】:

我的连接字符串是

string connStr = @"Data Source=(local)\SQLEXPRESS
                        Initial Catalog=University11;
                        Integrated Security=True";

但是后来我把我的数据库复制到了

C:\Users\Чак\Desktop\ботанизм\ООП\coursework.start\CourseWorkFinal\CourseWorkFinal\

并将其设置为连接字符串中的方式

  string connStr = @"Data Source=C:\Users\Чак\Desktop\ботанизм\ООП\coursework.start\CourseWorkFinal\CourseWorkFinal\;
                        Initial Catalog=University11;
                        Integrated Security=True";

但在那种情况下我有一个例外

A network-related or instance-specific error occurred while establishing a connection 
to SQL Server. The server was not found or was not accessible. Verify that the instance 
name is correct and that SQL Server is configured to allow remote connections. 
(provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance 
Specified)

我需要什么正确的连接字符串?

【问题讨论】:

  • 当您说您复制了数据库时,这是从 Management Studio 中复制的,还是您复制了 MDF/LDF 文件?
  • 您确实应该使用 SSMS 将这些文件附加到 SQL Express。然后连接到 .\SQLEXPRESS 并指定一个初始目录应该可以工作。

标签: c# sql-server database ado.net


【解决方案1】:

如果打算作为“用户实例”访问文件,那么连接字符串更像:

Data Source=.\SQLEXPRESS;AttachDBFilename=YourPath.mdf;Integrated Security=True;

否则,请使用初始目录提供在实例上注册的数据库名称。

【讨论】:

  • 但我没有目录\SQLEXPRESS。只是简单的 University.mdf 靠近 .xaml 和 .cs 文件。
  • .\SQLEXPRESS 不是目录——它告诉它使用哪个 SQL-Express 实例。根据您的说法:要么在实例中注册这些文件并使用初始目录,使用 AttachDBFilename 来按原样使用文件;这仍然需要 .\SQLEXPRESS
  • 我有一个异常,它不能附加数据库。
  • 说真的,根据数据库名称注册文件会容易得多......但是:根据文档,完整路径应该没问题:msdn.microsoft.com/en-us/library/bb264564(v=sql.90).aspx 除此之外......很难猜到,
  • 当我这样做时它已经添加了文件(我不确定但没有任何感觉)但是当我试图在服务器资源管理器中刷新它时它告诉我@ 987654323@。在我关闭程序然后重新启动后 - 我看到了我的数据。怎么了?
【解决方案2】:

连接字符串 (Data Source=(local)\SQLEXPRESS...) 用于在您决定移动文件时隐藏数据库文件的物理位置。无论您的文件在哪里,使用您的数据库的程序都不应该关心,因为从逻辑上讲,它是同一个数据库。移动数据库文件时,需要将 SQL Express 数据库重新指向新位置,并保持连接字符串不变。

【讨论】:

  • @Артём 你有 SSMS 吗?这是使用数据库的最简单方法......(有一个免费的“快速”版本的 SSMS)
  • 不,我没有。它在某处被 dos-virus 捕获,因此现在无法安装它。行。如果我下载它下一步该怎么做?
  • @АртёмЦарионов 在 SSMS 中选择您的数据库,右键单击它,然后从上下文菜单中选择 Properties。在“属性”对话框中,选择 Files 选项卡,并在此处提供文件的更新位置。
【解决方案3】:

我认为您不应该更改连接字符串,您不能直接访问 SQL SERVER 数据库,您必须始终通过 SQL SERVER DBMS。您唯一能做的就是导入/导出您的数据或管理您的 SQL SERVER 以从新的目标文件夹中读取您的数据库(但这必须在 SQL SERVER 中完成,而不是修改连接字符串)。

【讨论】:

  • 但是当我尝试添加数据源和数据集时它是由程序完成的。数据集适用于当前目录中的 .mdf 文件。但程序添加到另一个目录中的数据库。我可以用另一个程序看到它。
  • 实际上,SQL Server Express 支持“用户实例”数据库,其工作方式更像嵌入式数据库。您在连接字符串中提供文件名。
  • 哦,很有趣!不知道这种可能性...我想您仍然可以利用登录/会员功能,对吧?
猜你喜欢
  • 2013-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-26
  • 1970-01-01
相关资源
最近更新 更多