01-09-18, 12:43 AM
(آخر تعديل لهذه المشاركة : 01-09-18, 12:53 AM {2} بواسطة princelovelorn.)
وعليكم السلام ورحمة الله وبركاته
جزاك الله خيرا وبارك فيك أخي الكريم
لقد طبقت الشرح كاملا مثل ما تفضلت به
وقمت بتعديل واحد فقط وهو 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
لا إله إلا الله وحده لا شريك له له الملك وله الحمد وهو على كل شئ قدير
سبحان الله وبحمده سبحان الله العظيم
سبحان الله والحمد لله ولا إله إلا الله والله أكبر ولا حول ولا قوة إلا بالله العلى العظيم
رب أغفر لي

