كيفية إنشاء قاعدة بيانات 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:اسم الملف بدون امتداد

نصائح أخرى

استخدم 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

ما عليك سوى تغيير البتات التي تحتاج إلى تغييرها أعلاه مثل مجموعة الملفات ونمو الملف والأحجام الأولية وما إلى ذلك.أعتقد أن هذا سيعمل على الرغم من أنني لا أملك 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