استاذى الكريم شكرااا لك
هل تقصد ان استبدل هذا الكود
كود :
Sub CreateDatabaseCompanys(ByVal Dgv As DataGridView)
Dim StrSQL As String = "Create database Companys"
Dim da As New System.Data.SqlClient.SqlDataAdapter(StrSQL, cn)
Dim dt As New DataTable
da.Fill(dt)
CreateTable(Dgv)
End Sub
بالكود الجديد
كود :
''' <summary>
''' Create Database For MS SQL Server
''' </summary>
''' <param name="DatabaseName">Database Name String</param>
''' <param name="DirectoryOfDatabase">Directory Of Database String</param>
''' <param name="CreateAndCode">Creat The Database And Write Code or Write Code</param>
''' <returns>Return True And Sql Query String,Return False And Sql Query String</returns>
Function CreateDatabaseForMSSQLServer(ByVal DirectoryOfDatabase As String, ByVal DatabaseName As String, ByVal CreateAndCode As Boolean) As String
Dim SqlStrXT As String = String.Empty
Dim Con As New SqlConnection("Server =(local);database=master;integrated security=True")
Try
Dim DIR1 As String = ""
Dim DIR2 As String = ""
Dim DTTable As New DataTable
DTTable.Clear()
If Not IO.Directory.Exists(DirectoryOfDatabase & "\MyDATABASE_NAME") Then Directory.CreateDirectory(DirectoryOfDatabase & "\MyDATABASE_NAME")
DIR1 = DirectoryOfDatabase & "\MyDATABASE_NAME\" & DatabaseName & ".mdf"
DIR2 = DirectoryOfDatabase & "\MyDATABASE_NAME\" & DatabaseName & "_log.ldf"
SqlStrXT = " CREATE DATABASE [" + DatabaseName + "] ON PRIMARY ( NAME = N'" & DatabaseName & _
"', FILENAME = N'" & DIR1 & "' , SIZE = 4096KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N'" & _
DatabaseName & "_log', FILENAME = N'" & DIR2 & "' , SIZE = 832KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)" & vbNewLine
If CreateAndCode Then
Dim da As New SqlClient.SqlDataAdapter(SqlStrXT, Con)
If Con.State = ConnectionState.Closed Then Con.Open()
da.Fill(DTTable)
If Con.State = ConnectionState.Open Then Con.Close()
End If
MsgBox(SqlStrXT & vbNewLine & "Database Created Successfully", MsgBoxStyle.Information, "")
If Con.State = ConnectionState.Open Then Con.Close()
Return True & " - " & SqlStrXT '' & vbNewLine & "Database Created Successfully"
Catch ex As Exception
MsgBox("Error : " & ex.Message, MsgBoxStyle.Critical, "Error")
If Con.State = ConnectionState.Open Then Con.Close()
Return False & " - " & SqlStrXT
End Try
End Function
عملت كده بس مفيش فايدة
انا اقصد تغيير مسار قواعد البيانات التى يتم انشائها والتى تخص الشركات وليس قاعدة بيانات company
هل من كود يضاف فى الاسكريبت الخاص بتكوين الداتا من خلال استخدام السيكوال يحل المشكلة
'DirectoryOfDatabase مسار قاعدة البيانات' 'DatabaseName اسم قاعدة البيانات' 'CreateAndCode التأكيد على بناء قاعدة البيانات' CreateDatabaseForMSSQLServer(DirectoryOfDatabase , DatabaseName , CreateAndCode)
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر
'DirectoryOfDatabase مسار قاعدة البيانات' 'DatabaseName اسم قاعدة البيانات' 'CreateAndCode التأكيد على بناء قاعدة البيانات' CreateDatabaseForMSSQLServer(DirectoryOfDatabase , DatabaseName , CreateAndCode)
با اخي بدل كتابة DirectoryOfDatabase ضع مسارك الذي تريد حفظ قاعدة البيانات به .
بدل كتابة DatabaseName ضع اسم قاعدة البيانات .
بدل CreateAndCode ضع true لتاكيد انشاء قاعدة البيانات و false لعدم انشائها .
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر
(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 لانها بتكون متغيرة ومش هينفع تكون ثابتة فى ملف الاسكريبت
مثل
هى دى الجملة الى عاوز اضفها للاسكريبت فى كل مرة انشئ فيها قاعدة جديدة لكن يكون متغير بها اسم الداتا ومتغير بها المسار
اسف على تكرار الاسئلة ولكن الموضوع هام بالنسبة لى واعرف كم تعبتك معى من بداية الموضوع وحتى الان ولكن لا املك الا ان اقدم لك كل الشكر والتقدير على ما تبذلة من جهد داخل المنتدى
اشكرك اخى الغالى عاصم