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

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

بدأه M.A.A.H في 14 أبريل 2009 · 6 رد · 781 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لمن اقو بمحاولة اظهار اكبر رقم من قاعدة البيانت يظهر هذا الخطاء اذا كانت قاعدة البيانات فاضية No data exists for the row/column.

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

		Dim MyDataReader As OleDbDataReader
		SQL = "Select Max(TxtNum) as MaxNum From Pieces"
		Try
			If MyCon.State = ConnectionState.Closed Then MyCon.Open()
			Dim Mycmd As New OleDbCommand(SQL, MyCon)
			MyDataReader = Mycmd.ExecuteReader()
			TxtNum.Text = Val(MyDataReader.Item("MaxNum"))
			MyDataReader.Close()
		Catch ex As OleDb.OleDbException
			MsgBox(ex.Message, MsgBoxStyle.Critical Or MsgBoxStyle.MsgBoxRight Or MsgBoxStyle.MsgBoxRtlReading, "خطاء غير معروف")
		Finally
			MyCon.Close()
		End Try
#2

جرب التالي

بعد السطر

MyDataReader = Mycmd.ExecuteReader()

اختبر القيمة hasRows لـ myDataReader قبل وضع القيمة في صندوق النصوص

مثال

			If MyDataReader.HasRows Then
				TxtNum.Text = Val(MyDataReader.Item("MaxNum"))
			End If

تم تعديل هذه المشاركة بواسطة محمد سامر أبو سلو في 14 أبريل 2009 في 12:15

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#3

الف شكر على ردك استاذ محمد

بس للاسف ما ضبطت لمن اسوي

MyDataReader.HasRows

او

MyDataReader.read

يعطيني وكانه حصل بيانات لكن لمن يوصل الى السطر

TxtNum.Text = Val(MyDataReader.Item("MaxNum"))

يعطيني نفس المشكله ياريت اذا في حل ثاني والف الف شكر مره ثانيه على ردك

#4

تفضل هذا مثال عملي من احد البرامج الشغالة

		Using Mocon As New SqlConnection(My.Settings.AccountsConnectionString)
			Dim MoCmd As New SqlCommand
			Dim TempBal As Long = 0

			Try

				Dim MoReader As SqlDataReader

				MoCmd.CommandText = "SELECT SUM(DebitAmmount-CreditAmmount) AS AccBal From AccountMovements WHERE AccountNumber LIKE '" & AccNum & "%'"

				MoCmd.CommandType = CommandType.Text
				MoCmd.Connection = Mocon
				MoCmd.Connection.Open()

				MoReader = MoCmd.ExecuteReader

				If MoReader.HasRows = True Then
					While MoReader.Read
						If Convert.IsDBNull(MoReader.Item("AccBal")) Then
							TempBal = 0
						Else
							TempBal = CLng(MoReader.Item("AccBal"))
						End If
					End While
				End If

			Catch ex As Exception
				MsgBox(ex.Message)

			Finally
				MoCmd.Connection.Close()

			End Try

			If TempBal > 0 Then
				Return CStr(Abs(TempBal)) & ", Debit"
			ElseIf CLng(TempBal) < 0 Then
				Return CStr(Abs(TempBal)) & ", Credit"
			Else
				Return TempBal.ToString
			End If
		End Using

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#5

مشكور الف شكر اعرف اني اتعبتك معاي بس تحملني شوي إن شاء الله بجرب الكود وبرد لك خبر

#6

لا شكر على واجب - وأرجو أن تحل مشكلتك

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#7

مشكور اخوي محمد فعلا الكود اشتغل 100%

وللفائده لمن احتاج الموضوع مره ثانيه هذه الاسطر اللي نفعت معي

			If MyDataReader.Read Then
				If Convert.IsDBNull(MyDataReader.Item("MaxNum")) Then
					TxtNum.Text = 1
				Else
					TxtNum.Text = MyDataReader.Item("MaxNum") + 1
				End If
			End If

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

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

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

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

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