so erstellen Sie eine SQL Server-Datenbank mit vb.net kodex
-
21-12-2019 - |
Frage
Ich verwende VB 2012 und SQL Server 2012 Localdb
Ich möchte eine Datenbankdatei erstellen (.mdf
) in meinem Ordner C:\AppData
z.db-Dateiname 0105.mdf
& Protokolldateiname 0105.ldf
Kann mir bitte jemand das Verfahren erklären?
Ich kann über die Verbindungszeichenfolge eine Verbindung zu SQL Server 2012 localdb herstellen
Data Source=(LocalDB)\v11.0;AttachDbFilename={0};Integrated Security=True;Connect Timeout=30
Lösung 2
Danke Steve Pettifer
Hier ist der endgültige Code, der funktioniert hat
Dim Conn As New SqlConnection("Data Source=(LocalDB)\v11.0;Initial Catalog=master;Integrated Security=True")
Using Conn
Conn.Open()
Dim cmd As SqlCommand = Conn.CreateCommand
Dim str As String = "CREATE Database {0} ON (Name= N'{0}', FileName='{1}\{0}.mdf')"
cmd.CommandText = String.Format(str, T2.Text, T1.Text)
cmd.ExecuteNonQuery()
End Using
T1.Text :Speicherort des Ordners T2.Text :Dateiname ohne Erweiterung
Andere Tipps
Verwenden Sie SqlCommand.ExecuteNonQuery
Imports System.Data.SqlClient
Dim queryString As String = "CREATE DATABASE [0105] ON PRIMARY (NAME = N'0105', FILENAME = N'C:\APPDATA\Pluto_Data.MDF' , SIZE = 1024KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) " & _
"LOG ON (NAME = N'0105_Log', FILENAME = N'C:\APPDATA\0105_Log.LDF' , SIZE = 1024KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )"
Using connection As New SqlConnection(queryString)
Dim command As New SqlCommand(queryString, connection)
command.Connection.Open()
command.ExecuteNonQuery()
End Using
Ändern Sie einfach die Bits, die Sie oben ändern müssen, wie die Dateigruppe, das Dateiwachstum und die Anfangsgrößen usw.Ich denke, das wird funktionieren, obwohl ich keine LocalDB zur Hand habe, um es auszuprobieren, also bin ich vielleicht etwas vom Kurs abgekommen.
BEARBEITEN: Ich war vom Kurs abgekommen und zu frei und einfach mit dem T-SQL.
Versuchen Sie dies stattdessen über den Link, den ich in einem Kommentar unten hinzugefügt habe.
Public Function CreateDatabase(ByVal dbName As String, ByVal dbFileName As String) As Boolean
Try
Dim connectionString As String = String.Format("Data Source=(LocalDB)\v11.0;Initial Catalog=master;Integrated Security=True")
Using connection As New SqlConnection(connectionString))
connection.Open()
Dim cmd As SqlCommand = connection.CreateCommand()
DetachDatabase(dbName)
cmd.CommandText = String.Format("CREATE DATABASE {0} ON (NAME = N'{0}', FILENAME = '{1}')", dbName, dbFileName)
cmd.ExecuteNonQuery()
End Using
If (My.Computer.FileSystem.FileExists(dbFileName)) Then
Return True
Else
Return False
End If
Catch
Throw
End Try
End Function