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

التأكد من وجود اتصال مع قاعدة البيانات او مع الشبكه

مغلق
بدأه basharss في 29 يناير 2007 · 6 رد · 902 مشاهدة · في برمجة الشبكات والتطبيقات الموزعة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

بسم الله الرحمن الرحيم

اخواني في منتدى العرب ، اواجه مشكله وهي انني قمت بعمل برنامج صغير يتصل بقاعدة البيانات الموجودة على السيرفر (من خلال الشبكة)

   Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\Calendar\wwwroot\App_Data\calendar.mdb;User Id=admin;Password=;"

المشكلة ان هذا الجهاز الموجودة عليه قاعدة البيانات يكون مغلق احيانا

وما اريد عمله هو رسالة خطء تظهر عند عدم نجاح الاتصال مع قاعدة البيانات

فكيف يتم التأكد من نجاح عملية الاتصال ؟

او الجواب يكون افضل اذا كان هناك امكانية للتأكد من وجود الجهاز على الشبكة من عدمه .

وشكرا جزيلا وبارك الله بك

logosite.gif
#2

افتح الاتصال والجهاز الذي عليه قاعدة البيانات مغلق

ثم خذ رقم الخطا وضع جمله شرطية عندما يحدث الخطا 17 مثلا تظهر له رساله ان الجهاز مغلق

طبعا عن طريق Try Catch

مثال لكنه على sql server

نظرا لعدم وجود شبكه لكن الفكره واحدة

  

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim con As New SqlClient.SqlConnection

con.ConnectionString = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=ServerName"

Try

con.Open()

Catch ex As SqlClient.SqlException

MessageBox.Show(ex.Number)

Select Case ex.Number

Case 17

MessageBox.Show("فشل الاتصال . تاكد من عمل السيرفر او ان اسم السيرفر غير صحيح")

Case 17142

MessageBox.Show("فشل الاتصال .السيرفر موقف موقتا")

End Select

Catch ex As Exception

MessageBox.Show(ex.Message)

End Try

End Sub

دعواتك

#3

مثال جميل هنالك ايضا خاصية لاختبار الاتصال هل تم ام لا كل من oledbconnection and Sqlconnection

وهي State كمال لي :

طريقة استخدام خاصية State بوضعها في رسالة تنبية بعد فتح الاتصال بكتابة الكود التالي :

Messegebox.Show( MyConnection.State.ToString())

lمثال اوضح :

Imports System.Data
Imports System.Data.OleDb
Public Class Form1
	Dim objconn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\vbnetsbs\vbtest.mdb")
	Dim myreader As OleDb.OleDbDataReader



	Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
		Dim strsql As String
		strsql = "select emp_computer_num,emp_name from emp_info "
		Dim objcommand As New OleDb.OleDbCommand(strsql, objconn)
		objconn.Open()

		'كود خاص للتاكد من فتح الاتصال
	   'في حال كون الاتصال مفتوح سوف تكون النيجة 
	   'Open
	   'غير ذالك تكون النتيجة
	  'Cloes  القيمة الافتراضية 
		MessageBox.Show(objconn.State.ToString())   

		objconn.Close()

	End Sub
End Class

ارجو ان تكون الفكرة واضحة ... تحياتي :lol:

تم تعديل هذه المشاركة بواسطة ahmedd في 30 يناير 2007 في 02:03

#4

السلام عليكم

يوجد اكثر من طريقة واعتقد ان الأخوة قد كتبوا بما فيه الكفاية وخاصة إذا كان اتصالك بقاعدة البيانات بشكل مباشر

#5

بارك الله بكم لقد ساعدتموني كثيرا

logosite.gif
#6

يا اخوان ، قمت بعمل ما قلتموه لي

ولكن عندما افصل الجهاز عن الشبكة (حيث ان قاعدة البيانات على جهاز اخر ) تظهر لي رسالة خطء .

لقد ارفقت صورة عن رسالة الخطء التي تظهر .

ارجوا المساعده

post-26511-1170239008_thumb.jpg

logosite.gif
#7

علمت انه في نسخة ال VS 2005 يوجد امكانية عمل اتصال مع جهاز معين عن طريق :

My.Computer.Network.Ping("192.168.1.55")

هل يمكن ذلك في VS 2002 او 2003

logosite.gif

هذا الموضوع مغلق.

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

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

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

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

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