как создать базу данных SQL Server с помощью vb.net кода

StackOverflow https://stackoverflow.com//questions/23005302

Вопрос

Я использую VB 2012 и SQL Server 2012 Localdb

Я хочу создать файл базы данных (.mdf) в моей папке C:\AppData

напр..имя файла базы данных 0105.mdf & имя файла журнала 0105.ldf

Кто-нибудь может, пожалуйста, рассказать мне о процедуре?

Я могу подключиться к SQL Server 2012 localdb, используя строку подключения

Data Source=(LocalDB)\v11.0;AttachDbFilename={0};Integrated Security=True;Connect Timeout=30
Это было полезно?

Решение 2

Спасибо Стиву Петтиферу

Вот окончательный код, который сработал

        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.текст :Расположение папки T2.text :Имя файла без расширения

Другие советы

Используйте SqlКоманду.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

Просто измените биты, которые вам нужно изменить выше, например файловую группу, рост файла и начальные размеры и т.д.Я думаю, что это сработает, хотя у меня нет под рукой LocalDB, чтобы попробовать это, так что я, возможно, немного сбился с курса.

РЕДАКТИРОВАТЬ: Я сбился с курса и слишком свободно и непринужденно обращался с T-SQL.

Попробуйте вместо этого сделать это по ссылке, которую я добавил в комментарии ниже.

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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top