تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] عمل اتتاتش للداتا بيز عند فتح البرنامج اول مرة عل جهاز العميل
#3
وعليكم السلام ورحمة الله وبركاته

جزاك الله خيرا وبارك فيك أخي الكريم

لقد طبقت الشرح كاملا مثل ما تفضلت به

وقمت بتعديل واحد فقط وهو sqlexpress  الى sqlnext  لان  هدا اسم السيرفر لدي 
وهذا طبعا مؤقتا لحين التعديل عليه لاحقا
وهذا هو الكود كاملا
كود :
Public Class Form1

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       If GETATTACHDATABASENAME() = False Then
           ATTACHDATABASENAME("database99", Application.StartupPath & "\db\database99.MDF", Application.StartupPath & "\db\database99_log.LDF")
       End If
   End Sub
   Public Shared Function GETATTACHDATABASENAME() As Boolean
       On Error Resume Next
       Dim DS As New DataSet
       Dim SqlConnection1 As SqlClient.SqlConnection = New SqlClient.SqlConnection("Data Source=" + My.Computer.Name & "\SQLnext" + ";Initial Catalog=tempdb;Integrated Security=SSPI;")
       Dim str As String = "Select DISTINCT name from master.dbo.sysdatabases where name Like 'database99' and has_dbaccess(Name) = 1 "
       Dim ADP As SqlClient.SqlDataAdapter
       ADP = New SqlClient.SqlDataAdapter(str, SqlConnection1)
       DS.Clear()
       ADP.Fill(DS)
       Dim i As Integer
       If DS.Tables(0).Rows.Count = 0 Then
           GETATTACHDATABASENAME = False
           MessageBox.Show(" قاعدة البيانات  'قاعدة بيانات البرنامج'" & "غير متصلة بالسرفر جارى عمل الاتصال", My.Computer.Name, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading)
       Else
           GETATTACHDATABASENAME = True
       End If
       ADP.Dispose()
       SqlConnection1.Dispose()
   End Function


   Public Shared Sub ATTACHDATABASENAME(ByVal MYDBNAME As String, ByVal f1lepathprimary As String, ByVal f1lepathlog As String)
       Try
           Dim SqlConnection1 As SqlClient.SqlConnection = New SqlClient.SqlConnection("Data Source=" + My.Computer.Name & "\SQLnext" + ";Initial Catalog=tempdb;Integrated Security=SSPI;")
           Dim CMD As SqlClient.SqlCommand = New SqlClient.SqlCommand
           CMD.CommandType = CommandType.Text
           CMD.Connection = SqlConnection1
           If SqlConnection1.State = ConnectionState.Open Then SqlConnection1.Close()
           SqlConnection1.Open()
           CMD.CommandText = "sp_attach_db " & MYDBNAME & ",'" & f1lepathprimary & "'" & ",'" & f1lepathlog & "'"
           ' OR CMD.CommandText = "CREATE DATABASE " & MYDBNAME & " ON (FILENAME = '" & f1lepath & "')FOR ATTACH"
           CMD.ExecuteNonQuery()
           SqlConnection1.Dispose()
           MessageBox.Show("تم انشاء اتصال  قاعدة البيانات  بالسرفر ", "ATTCH DATABASE", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2, MessageBoxOptions.RtlReading)
       Catch ex As Exception
           Dim result As Integer
           result = MessageBox.Show("فشل البرنامج فى انشاء اتصال  بقاعدة البيانات  بالسرفر", "ATTCH DATABASE", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2, MessageBoxOptions.RtlReading)
           MessageBox.Show(ex.Message)
       End Try
   End Sub
End Class

والنتيجة رسالة خطأ التالية عند محاولة التشغيل من درايف ال c


وهذة عندما حاولت التشغيل من خلال داريف أخر
ملاحظات
قاعدة البيانات فارغة ليس بها اي جدول
تم إنشائها من نفس السيرفر
نسخة ال sql لدي هي   sqlserver2008 r2
نسخة الفيجوال vb.net 2010
نسخة الويندوز windows 10 64 bit
لا إله إلا الله وحده لا شريك له له الملك وله الحمد وهو على كل شئ قدير
سبحان الله وبحمده سبحان الله العظيم
سبحان الله والحمد لله ولا إله إلا الله والله أكبر ولا حول ولا قوة إلا بالله العلى العظيم
رب أغفر لي 

الرد }}}
تم الشكر بواسطة: mero5000 , mero5000


الردود في هذا الموضوع
RE: عمل اتتاتش للداتا بيز عند فتح البرنامج اول مرة عل جهاز العميل - بواسطة princelovelorn - 01-09-18, 12:43 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [مثال] طريقة إنشاء قاعدة sql بواسطة script برمجيا وكتابة أسمها بواسطة العميل princelovelorn 9 9,419 26-03-23, 04:24 PM
آخر رد: sanyor77
  [مقال] مشاركة البرنامج على أكثر من جهاز (قاعدة بيانات اكسيس) mr_hso 0 1,363 06-01-23, 05:21 AM
آخر رد: mr_hso

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم