0

这是我第一次在这个珍贵的网站上发帖。我是 vb.net 的新学习者。我正在做一个简单的采购项目,但我遇到了一些错误。但首先让我感到困惑的是:

这是我在开发机器上的模块级别的连接字符串。

    Public strCn As String = "Data Source = (local); Initial Catalog = PSys; Integrated Security = false; User ID = sa; Password = 123;"

数据源是否必须是系统名称的原始名称。我的意思是如果我使用(本地)或使用(.),那么它会起作用吗?因为当我将我的项目复制到任何其他系统以进行进一步开发时,所以每次我都需要更改数据源,否则我会收到错误消息:“发生网络相关或特定于实例的错误......”

请指导我我需要做什么。

4

1 回答 1

1

当您开发使用数据库服务器(例如 MsSQL)的应用程序时,将服务器与您的应用程序一起安装在安装到的每台 PC 上是不明智的。例如,如果客户有一个包含 10 台计算机的本地网络,你会怎么做?您要在所有 10 个中安装 SQL Server 吗?如果是这样,如果他们需要共享数据怎么办?

因此,您的最佳方法(基于其他应用程序的常见做法)将是允许用户将 SQL 服务器安装在他想要的位置,并让他配置您的应用程序并将其指向服务器的位置。如果您遵循该路径,则应用程序的配置可以在设置应用程序或应用程序本身中。

现在关于开发阶段,我有类似的情况,我需要在两台不同的计算机上开发相同的应用程序。我所做的是使用命名实例“sqlexpress”在它们两个中安装 SQL 服务器,然后在我使用的应用程序中

Data.SqlClient.SqlConnectionStringBuilder

类来构建连接字符串。我做了这样的事情:

Public Function getDevConnectionString() As String
    Dim csb As New Data.SqlClient.SqlConnectionStringBuilder(My.Settings.dbConnectionString) '<-My original cs in app settings

    csb.DataSource = My.Computer.Name & "\sqlexpress"

    Return csb.ConnectionString
End Function

每当我需要连接字符串时,我只需调用 getDevConnectionString(),它会根据计算机名称和 sql 服务器实例名称返回连接字符串。例如:

        Dim cs As String
#If DEBUG Then
    cs = getDevConnectionString()
#Else
    cs = getReleaseConnectionString()
#End If

其中 getReleaseConnectionString() 是返回客户配置的连接字符串的函数。

希望这为您指明正确的方向...

于 2013-07-06T14:06:03.187 回答