الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التاكد من وجود قاعدة البيانات

بدأه tatatab في 5 يناير 2012 · 10 رد · 1,044 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني كيف استطيع التاكد من وجود قاعدة البيانات فى SQL باستخدام VB.NET

على سبيل المثال فى مشرع هناك تكست بوكس يدخل المستخدم اسم قاعدة البيانات وبجانب هذا التكست زرار يضغط عليه المستخدم ليتاكد هل القاعدة موجودة ام لا , فاريد ان يظهر له رسالة تقول له هذه القاعدة موجودة او هذا القاعدة غير موجودة

#2

بهذه الطريقة

Try 
con.Open()
Catch e As Exception

' تأكد من رسالة الخطأ بالضبط فلا اعرف هل هذه هي الرسالة ام هناك اختلاف وغير على اساسها
	If e.Message.Contains("Database does not exist") Then
		MessageBox.Show("تأكد من قاعدة البيانات")
	else
		'Do anything

	End If

End Try
#3

السلام عليكم ورحمه الله وبركاته

اخي يمكنك عمل اجراء مخزن وتكتب الكود التالي

if db_id('DataBaseName') is not null
   return true
else
   return false

وبعدها تقوم بالاتصال بقاعدة البيانات master وتنفذ الاجراء لترجع لك القيمة true اذا كانت قاعدة البيانات موجوده او false عن عدم وجودها

كما يمكنك استخدام الكود التالي

IF EXISTS (SELECT name FROM sys.databases WHERE name = N'DataBaseName')

.:: Wish to become better and better ::.

#4

جرب هذا الكود

SELECT count(database_id)  FROM sys.databases WHERE name = N'DataBaseName'
#5
KARIMSOFT كتب:

جرب هذا الكود

SELECT count(database_id)  FROM sys.databases WHERE name = N'DataBaseName'

عذرا اخواني , هل اضع هذا الكود فى كود التكست بوكس ؟ كان سؤالي عند ادخال اسم القاعدة من تكست بوكس ان يقوم الكود بالتحقيق من اسم القاعدة المدخل من التكست بوكس

#6
tatatab كتب:

عذرا اخواني , هل اضع هذا الكود فى كود التكست بوكس ؟ كان سؤالي عند ادخال اسم القاعدة من تكست بوكس ان يقوم الكود بالتحقيق من اسم القاعدة المدخل من التكست بوكس

ارجو بان اكون قد وفقت فى توضيح سؤالى

ولكم كل الشكر

#7

حتى نتحقق من اسم القاعدة يجب ان نتصل بالسيرفر ونفحص القاعدة باحدى الطرق الذي ذكرناها في اجاباتنا .

بالنسبة لطريقتي فهي افتح القاعدة بشكل عادي كما في موضوعك السابق ولكن راقب الخطأ .

وبشكل عام لا افضل ان يتم ادخال اسم القاعدة من قبل المستخدم وانما من الافضل ادخالهم في ملف وعرضهم للمستخدم في combobox .

#8

انظر هذا الكود

   Dim con As New SqlConnection("Data Source=.;Initial Catalog=master;Integrated Security=True")
        Dim cmd As New SqlCommand("SELECT count(database_id)  FROM sys.databases WHERE name = N'" & TextBox1.Text & "'", con)
        con.Open()
        Try
            If cmd.ExecuteScalar() = 1 Then
                MessageBox.Show("EXISTS")
            Else
                MessageBox.Show("NOT EXISTS")
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        Finally
            con.Close()
        End Try

تم تعديل هذه المشاركة بواسطة KARIMSOFT في 5 يناير 2012 في 23:20

#9
KARIMSOFT كتب:

انظر هذا الكود

   Dim con As New SqlConnection("Data Source=.;Initial Catalog=master;Integrated Security=True")
        Dim cmd As New SqlCommand("SELECT count(database_id)  FROM sys.databases WHERE name = N'" & TextBox1.Text & "'", con)
        con.Open()
        Try
            If cmd.ExecuteScalar() = 1 Then
                MessageBox.Show("EXISTS")
            Else
                MessageBox.Show("NOT EXISTS")
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        Finally
            con.Close()
        End Try

اخواني الكرام بارك الله فيكم , هي تعمل الان جيدا ولكني حاولت ان اعمل بنصيحة اخي TareqVB بان اجعل المستخدم يختار القاعدة من كومبوبوكس ولكن للاسف لم اصل الى نتيجة صحيحة , فكيف يمكنني فعلها بشكل صحيح .

تم تعديل هذه المشاركة بواسطة tatatab في 6 يناير 2012 في 05:01

#11

انظر هذا الكود

  Dim con As New SqlConnection("Data Source=.\sql08;Initial Catalog=master;Integrated Security=True")
        Dim cmd As New SqlCommand("SELECT [name] FROM sys.databases WHERE name NOT IN ('master','model','msdb','tempdb')", con)
        con.Open()
        Try
            Dim dr As SqlDataReader = cmd.ExecuteReader
            While dr.Read
                ComboBox1.Items.Add(dr(0))
            End While
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        Finally
            con.Close()
        End Try

مواضيع مشابهة