2013-07-27 190 views
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 

創建數據庫,但我有以下錯誤,當項目運行:

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)

+0

你的con字符串應該是'(localdb)'而不是'(local)'? – 2013-07-27 01:26:53

+0

錯誤仍然顯示 – mhmad

回答

2

你需要有您使用的連接字符串中具有相同名稱的實際服務器實例上運行:

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

我在這種情況下,它是(local)\netsdk,而且您顯然沒有在執行此代碼的計算機上安裝名爲netsdk的SQL Server實例。

+0

更多信息請 – mhmad

+1

**必須在計算機上運行具有該名稱的服務器實例**。我不知道如何更具體。如果系統上沒有名爲'(local)\ netsdk'的SQL Server實例,則無法在其中創建數據庫。如果沒有一個叫瑪麗的女人,我不能把一個男孩稱爲「瑪麗的兒子」。 –

+0

看我需要通過VB創建數據庫的方式,所以在我使用我的應用程序後,無需在計算機上運行它應用程序SQL Server – mhmad

1
New SqlConnection("Server=(local)\netsdk;" 

這就是說你的應用必須連接到你的機器上運行的SQL Server實例。

my Application run it App on computer without need SQL Server

違揹你的代碼怎麼說。它也與你的問題中的sql-server標籤相矛盾。你在建什麼樣的應用程序? Windows桌面應用程序?的WinForms?

如果您正在構建必須在沒有安裝數據庫的情況下運行的單機應用程序,則應使用嵌入式數據庫,如SQL Compact。數據庫在應用程序內部運行,不需要運行單獨的實例。

SQL Compact的連接字符串與您所顯示的不同,您需要按照教程進行操作。點擊SQL Compact頁面中的「學習中心」。