0

我正在尝试通过以下代码通过 VB.net 动态创建数据库

Dim str As String
Dim myConn As SqlConnection = New SqlConnection("Server=(local)\netsdk;" & _
                                     "uid=sa;pwd=a123;database=master")  

str = "CREATE DATABASE MyDatabase ON PRIMARY " & _
      "(NAME = MyDatabase_Data, " & _
      " FILENAME = 'E:\MyDatabaseData.mdf', " & _
      " SIZE = 2MB, " & _
      " MAXSIZE = 10MB, " & _
      " FILEGROWTH = 10%) " & _
      " LOG ON " & _
      "(NAME = MyDatabase_Log, " & _
      " FILENAME = 'E:\MyDatabaseLog.ldf', " & _
      " SIZE = 1MB, " & _
      " MAXSIZE = 5MB, " & _
      " FILEGROWTH = 10%) "

Dim myCommand As SqlCommand = New SqlCommand(str, myConn)

Try
    myConn.Open()
    myCommand.ExecuteNonQuery()
    MessageBox.Show("Database is created successfully", _
                    "MyProgram", MessageBoxButtons.OK, _
                     MessageBoxIcon.Information)
Catch ex As Exception
    MessageBox.Show(ex.ToString())
Finally
    If (myConn.State = ConnectionState.Open) Then
        myConn.Close()
    End If
End Try

但是项目运行时出现以下错误:

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)

4

2 回答 2

2

您需要运行一个与您在连接字符串中使用的名称相同的实际服务器实例:

Dim myConn As SqlConnection = New SqlConnection("Server=(local)\netsdk;" & _
                                         "uid=sa;pwd=a123;database=master")  

在这种情况下,它是(local)\netsdk,并且您显然没有netsdk在执行此代码的计算机上安装名为的 SQL Server 实例。

于 2013-07-27T01:25:48.233 回答
1
New SqlConnection("Server=(local)\netsdk;"

也就是说,您的应用程序必须连接到您机器上运行的 SQL Server 实例。

我的应用程序在不需要 SQL Server 的情况下在计算机上运行它

这与您的代码所说的相矛盾。它还与您问题中的 sql-server 标记相矛盾。您正在构建什么样的应用程序?Windows 桌面应用程序?窗体?

如果您正在构建一个必须在没有安装数据库的情况下运行的单机应用程序,您应该使用像SQL Compact这样的嵌入式数据库。数据库在您的应用程序中运行,您不需要运行单独的实例。

SQL Compact 的连接字符串与您显示的不同,您需要按照教程进行操作。单击 SQL Compact 页面中的“学习中心”。

于 2013-07-27T01:52:29.380 回答