【问题标题】:I want my vb.net program with sqldb to be transferable我希望我的带有 sqldb 的 vb.net 程序可以转移
【发布时间】:2023-03-11 21:15:01
【问题描述】:

我的 vb.net 程序有问题。它有一个带有SqlConnection 字符串的数据库:

DbConn = New SqlConnection("Data Source=ACE-DUO;Initial Catalog=db_CVSO;Persist Security Info=True;User ID=sa;Password=pwd")

我为这个 vb.net 程序制作了一个安装程序,但我的 SQL Server 连接字符串出现问题。这是因为一旦我将程序安装在不同的计算机上。在我的例子中,服务器名称 (ACE-DUO) 发生了变化,并且无法定位数据库本身。

我知道如何分离文件并将其附加到 vb.net 程序。我真正的目标是我希望连接字符串根据程序资源的放置位置进行更改。

例如,如果程序安装在C:\Program Files\MyDatabase 文件夹中,我想将其作为连接字符串的一部分,以便在不同的计算机上打开它。

【问题讨论】:

  • SQL Server 的哪个版本?
  • Application.ExecutablePath 将为您提供启动应用程序的可执行文件的位置。您可以从中删除可执行文件名称并将其连接到您的连接字符串中。
  • 我使用的是 Microsoft SQL Server 2005
  • @Pezzzz 问题是服务器名称而不是在哪里或如何附加文件名。

标签: vb.net tsql sql-server-2005 connection connection-string


【解决方案1】:

如果您不需要对数据库进行多个共享访问,您可以利用 Sql Server 2012 的 LocalDB 功能。 您的连接字符串可以更改为

 DbConn = New SqlConnection("Server=(localdb)\v11.0;Integrated " & _ 
                            "Security=true;AttachDbFileName=C:\Program Files\MyDatabase\db.mdf;"

Article on LocalDB

【讨论】:

  • 我尝试使用这个: DbConn = New SqlConnection("Server=(localdb)\v11.0;AttachDbFilename=C:\db_CVSO.mdf;Persist Security Info=True;User ID=sa ;Password=pwd;") 但我目前收到此错误。 System.Data.SqlClient.SqlException(0x80131904):建立与 SQL 服务器的连接时发生与网络相关或特定于实例的错误。如果我能自己解决这个问题,我正在尝试。我是这个领域的新手,如果我不能很好地跟进,我很抱歉。
  • 我尝试将数据库(mdf 文件)放在 C:\ 我想尝试从该位置访问它。
  • @chloe:LocalDB 是 SQL Server 2012 中的新功能 - 它不适用于 2005 版本...
  • 开始删除用户 ID 和密码,使用 Integrated Security=true。通常情况下,C盘的根文件夹:没有读/写权限。尝试在其他地方,如 c:\database 并确保具有读/写权限
  • @marc_s 对,我现在看到了评论。 OP 需要安装 LocalDB 位 from here。在这一点上,我不确定所有这些工作是否真的值得
猜你喜欢
  • 1970-01-01
  • 2022-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-19
  • 2016-04-07
  • 2011-07-26
  • 1970-01-01
相关资源
最近更新 更多