منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
كود إنشاء قاعدة البرنامج من اسكربت عند فتح البرنامج أول مره - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : كود إنشاء قاعدة البرنامج من اسكربت عند فتح البرنامج أول مره (/showthread.php?tid=32350)



كود إنشاء قاعدة البرنامج من اسكربت عند فتح البرنامج أول مره - Hamoody - 03-12-19

السلام عليكم

محتاج كود اول ما اعمل فتح للبرنامج اول مره يروح يشيك على قاعدة البيانات هل هيا موجوده ام لا فإذا كانت غير موجودة فإنه ينشأها بواسطة اسكربت مخزن في مسار applaction.path 
و شكرا مقدما


RE: كود إنشاء قاعدة البرنامج من اسكربت عند فتح البرنامج أول مره - asemshahen5 - 04-12-19

طريقة إنشاء قاعدة sql بواسطة script برمجيا وكتابة أسمها بواسطة العميل


RE: كود إنشاء قاعدة البرنامج من اسكربت عند فتح البرنامج أول مره - عبد العزيز البسكري - 04-12-19

طريقة أخرى من باب التنويع ..
http://vb4arb.com/vb/showthread.php?tid=24869



RE: كود إنشاء قاعدة البرنامج من اسكربت عند فتح البرنامج أول مره - Hamoody - 04-12-19

اولا مشكور على الرد 
ثانيا أنا قصدي اني انا احفظ ملف الإسكريبت في مجلد Debug و أول ما البرنامج يشتغل يروح يشيك على قاعدة البيانات هل فيها الملف لو فيها خلاص و لو ما فيها يبدأ ينفذ الإسكريبت و ينشئ قاعدة البيانات

المهم انا عملت كود بس المشكله انه بيقرأ الإسكربت كله كسطر واحد و بيديني خطأ 
كود :
 Dim conn As String = "Data Source=.\SQLEXPRESS;Integrated Security=True"
                       Dim script As VariantType = File.ReadAllText(Application.StartupPath + "\SQLScript.sql")
                       Dim co As SqlConnection = New SqlConnection(conn)
                       Dim servdddder As Management.Smo.Server = New Management.Smo.Server(New ServerConnection(co))
                       Dim Server_conn As Microsoft.SqlServer.Management.Smo.Server = New Microsoft.SqlServer.Management.Smo.Server(New ServerConnection(co))
                       servdddder.ConnectionContext.ExecuteNonQuery(script)

بس زي ماهو واضح مش بينفذ الإسكربت 
فيه كود معمول بالc# لو احد من يعرف يحوله للفيجوال يبقى فنان
كود :
   Dim script As String = File.ReadAllText(Application.StartupPath + "\SQLScript.sql")
                       Dim sqlqueries As String = script.Split(New[] {"GO"}, StringSplitOptions.RemoveEmptyEntries)
                       Dim conn As String = "Data Source=.\SQLEXPRESS;Integrated Security=True"
                       Dim CMD1 As New SqlClient.SqlCommand("query", connSQLServer)

                       connSQLServer.Open()

                       foreach(var qurey As VariantType)
                       {
                       CMD1.CommandText = qurey
                       CMD1.ExecuteNonQuery()
                       }
                        connSQLServer.Close()



RE: كود إنشاء قاعدة البرنامج من اسكربت عند فتح البرنامج أول مره - alfaiz678 - 04-12-19

(04-12-19, 06:53 AM)Hamoody كتب : بس زي ماهو واضح مش بينفذ الإسكربت 
فيه كود معمول بالc# لو احد من يعرف يحوله للفيجوال يبقى فنان
كود :
   Dim script As String = File.ReadAllText(Application.StartupPath + "\SQLScript.sql")
                       Dim sqlqueries As String = script.Split(New[] {"GO"}, StringSplitOptions.RemoveEmptyEntries)
                       Dim conn As String = "Data Source=.\SQLEXPRESS;Integrated Security=True"
                       Dim CMD1 As New SqlClient.SqlCommand("query", connSQLServer)

                       connSQLServer.Open()

                       foreach(var qurey As VariantType)
                       {
                       CMD1.CommandText = qurey
                       CMD1.ExecuteNonQuery()
                       }
                        connSQLServer.Close()


الكود بالاعلى ليس بالسي شارب
اين الكود الذي بالسي شارب


RE: كود إنشاء قاعدة البرنامج من اسكربت عند فتح البرنامج أول مره - asemshahen5 - 05-12-19

PHP كود :
   Private Sub Button1_Click(sender As ObjectAs EventArgsHandles Button1.Click
        ExecutesqlFile
("(local)""TestTestD"Application.StartupPath "\SQLScript.sql")
 
   End Sub
    Public Sub ExecutesqlFile
(ByVal SERVAR_NAME_SQL As StringByVal DATABASE_NAME As StringByVal sqlFile As String)
 
       Using connection As New SqlClient.SqlConnection("Server =" SERVAR_NAME_SQL ";database=" DATABASE_NAME ";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 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
                ProgressBar1
.Step 1
                For Each line 
As String In lines
                    If line
.Length 0 Then
                        ProgressBar1
.Maximum line.Length 20
                        ProgressBar1
.Value line.Length
                        cmd
.CommandText line
                        cmd
.CommandType CommandType.Text
                        Try
                            cmd
.ExecuteNonQuery()
 
                       Catch generatedExceptionName As SqlClient.SqlException
                            MsgBox
(generatedExceptionName.MessageMsgBoxStyle.Critical"")
 
                           transaction.Rollback()
 
                           Throw
                        End 
Try
 
                   End If
 
               Next
                ProgressBar1
.Value ProgressBar1.Maximum
                MsgBox
("تمت عملية انشاء الجداول و الاستعلامات بنجاح"MsgBoxStyle.Information"")
 
           End Using
            transaction
.Commit()
 
           connection.Close()
 
       End Using
    End Sub