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
War es hilfreich?

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top