10-10-20, 02:01 AM
(09-10-20, 08:27 PM)asemshahen5 كتب : با اخي بدل كتابة DirectoryOfDatabase ضع مسارك الذي تريد حفظ قاعدة البيانات به .
بدل كتابة DatabaseName ضع اسم قاعدة البيانات .
بدل CreateAndCode ضع true لتاكيد انشاء قاعدة البيانات و false لعدم انشائها .
اخى الكريم اشكرك على تعبك معى
تم تنفيذ الكود وهو يعمل الان تمام ولكن ما يتم انشائة هو الداتا company
والتى تحتوى على بيانات الشركات وهى غير المقصودة
المقصود هو الداتا التى يتم انشائها من الاسكريبت والتى يكون اسمها StockDB1 او StockDB2 او اى اسم ياتى بعدهم
هما دو القواعد التى اريد ان احدد لها مكان ثابت بعيدا عن الدرايف c
والتى تنشأ نتيجه قرائة الاسكريبت
كود :
#Region "Creat Database And Table From Sql Scrpt"
'يقرأ ملفات السكول سيرفر من ملفات التكست الموجودة في مسار البرنامج'
Public Sub ExecutesqlFile(ByVal sqlFile As String, ByVal DatabaseName As String)
Using connection As New SqlClient.SqlConnection("server=" & Servernametext & ";database=" & DatabaseName & ";integrated security=true")
If connection.State = ConnectionState.Closed Then connection.Open()
Dim sql As String = ""
Using strm As FileStream = File.OpenRead(sqlFile)
Dim reader As New StreamReader(strm)
sql = reader.ReadToEnd()
End Using
Dim regex As New RegularExpressions.Regex("^GO", RegexOptions.IgnoreCase Or RegexOptions.Multiline)
Dim lines As String() = regex.Split(sql)
Dim transaction As SqlClient.SqlTransaction = connection.BeginTransaction()
Using cmd As SqlClient.SqlCommand = connection.CreateCommand()
cmd.Connection = connection
cmd.Transaction = transaction
For Each line As String In lines
If line.Length > 0 Then
cmd.CommandText = line
cmd.CommandType = CommandType.Text
Try
cmd.ExecuteNonQuery()
Catch generatedExceptionName As SqlClient.SqlException
MsgBox(generatedExceptionName.Message, MsgBoxStyle.Critical, "")
transaction.Rollback()
Throw
End Try
End If
Next
End Using
transaction.Commit()
If connection.State = ConnectionState.Open Then connection.Close()
End Using
End Sub
#End Regionبمعنى انى عاوز ابعت للاسكريبت ده اسم قاعدة البيانات الى هى مثلا StockDB1 لانها بتكون متغيرة ومش هينفع تكون ثابتة فى ملف الاسكريبت
مثل
كود :
CREATE DATABASE [StockDB8] ON PRIMARY
( NAME = N'StockDB8', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SERVER\MSSQL\DATA\StockDB8.mdf' , SIZE = 5376KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'StockDB8_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SERVER\MSSQL\DATA\StockDB8_log.LDF' , SIZE = 4736KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GOهى دى الجملة الى عاوز اضفها للاسكريبت فى كل مرة انشئ فيها قاعدة جديدة لكن يكون متغير بها اسم الداتا ومتغير بها المسار
اسف على تكرار الاسئلة ولكن الموضوع هام بالنسبة لى واعرف كم تعبتك معى من بداية الموضوع وحتى الان ولكن لا املك الا ان اقدم لك كل الشكر والتقدير على ما تبذلة من جهد داخل المنتدى
اشكرك اخى الغالى عاصم
