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

كيف يمكنني اكتشاف ما اذا كانت قاعدة البيانات موجوده ام لا؟

بدأه السهم الاخضر في 22 فبراير 2008 · 4 رد · 947 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني الكرام

في الحقيقه لا اعرف هل من الانسب طرح هذا السؤال هنا ام في منتدى ال ADO.NET فهو مشترك بين الاثنين

انا اعمل على VB.NET9 واريد ان استعلم عن وجود قاعدة بيانات ما ولنفرض انها بأسم Mydatabase دون ان استخدم Microsoft SQL Server Management Studio فقط من خلال ادوات ال ADO المتاحه لدي

هذا امر SQL لمعرفة ما اذا كانت قاعدة البيانات موجوده ام لا ويقوم بعمل drop للقاعده

if Exists (Select * From master..sysdatabases Where Name ='mydatabase') DROP DATABASE Mydatabase

طبعا يجب وضعه في متغير نصي وارساله الى السيرفر لتنفيذه عن طريق ال ADO

ولكن ماذا لو اردت فقط ان استعلم عن وجود القاعده من عدمه دون ان اقوم بعمل حذف او انشاء فما هي الطريقه ولكم جزيل الشكر والتقدير

#2

فقط استخدم الامر

Select 1 From master..sysdatabases Where Name ='mydatabase'

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

 
			Dim result As Object
			cmd.CommandText = "Select 1 From master..sysdatabases Where Name ='mydatabase'"
			result = cmd.ExecuteScalar()
			If IsDBNull(result) Then
				'not found 
			End If

لكن تحتاج الى فتح الاتصال على قاعدة البيانات Master

#3

اخي الكريم طارق

استخدمت الامر الذي اشرت به علي بهذه الطريقه ولكن لم تنجح

		Dim result As Object
		Dim sqlstr As String = "Select 1 From master..sysdatabases Where Name ='mydatabase'"

		Dim cmd As New SqlCommand(sqlstr, myConnection1)
		Try
			myConnection1.Open()
			result = cmd.ExecuteScalar()
			If IsDBNull(result) Then
				MsgBox("not found")
			End If

		Catch ex As Exception
			MsgBox(ex.Message)
		Finally
			myConnection1.Close()
			cmd.Cancel()
		End Try

هل هناك خطأ في هذا الكود وكيف افتح الاتصال على قاعدة البيانات Master

انا مبتدأ ولك كل الشكر والتقدير

#4

سبب الفتح على Master لانك تريد فحص القاعدة هل هي موجودة ام لا فاذا لم تكن موجودة سيحدث عندك خطأ (وهذه طريقة لمعرفة انها موجودة ام لا )

ولاستخدام ال Master نضعها بدل اسم القاعدة كما يلي

Dim myConnection1 As New SqlConnection("Data Source=.;Initial Catalog=master;.............

وبدل If IsDBNull(result) Then

َضع

if result is nothing then

#5

اخي العزيز طارق بارك الله فيك ونفع بعلمك

اتبعت الطريقه التي اشرت على بها والحمد لله نجحت

		Dim myConnection As New System.Data.SqlClient.SqlConnection("Data Source=myserver;Initial Catalog=master;User ID=sa;Password=sa")
		Dim result As Object
		Dim sqlstr As String = "Select * From master..sysdatabases Where Name ='mydatabase'"
		Dim cmd As New SqlCommand(sqlstr, myConnection)
		Try
			myConnection.Open()
			result = cmd.ExecuteScalar()
			If result Is Nothing Then
				MsgBox("قاعدة البيانات غير موجوده على السيرفر")
			Else
				MsgBox("قاعدة البيانات موجوده على السيرفر")
			End If
		Catch ex As Exception
			MsgBox(ex.Message)
		Finally
			myConnection.Close()
			cmd.Cancel()
		End Try

ولك مني كل الشكر والتقدير

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…