كيفية إنشاء قاعدة بيانات SQL Server باستخدام كود vb.net
-
21-12-2019 - |
سؤال
أنا أستخدم 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
لا تنتمي إلى StackOverflow