30-12-18, 03:53 AM
(21-12-18, 01:27 AM)new_programer كتب : السلام عليكم
عفوا استاذ
حريف برمجة
الكود لم يعمل معي
شكرا لك
اخيرا الحمد لله
توصلت للحل المشكلة كانت يجب وضع الكود داخل Try
علشان عند عدم وجود بيانات بيحصلش خطاء
هذا الكود ليستفيد به الجميع
كود :
Try
Dim cmd As New OleDbCommand("select sum(item_price) from tbl_sales where ddate= @ddate", con)
cmd.Parameters.Add("@ddate", OleDbType.Date).Value = txt_date.Text
con.Open()
Dim count As Integer = cmd.ExecuteScalar
txt_decount.Text = count
con.Close()
Catch
con.Close()
txt_Sum_Price.Text = "0000"
MsgBox(" لا يوجد فواتير مسجلة بهذا التاريخ", MsgBoxStyle.Critical, "لا يوجد بيانات")
End Try
وعليكم السلام ورحمة الله
عفوا أخي الكريم،
إن الحل الذي وضعته ليس صحيحا،
لأنه لو حصل أي خطأ في جزء بين Try وCatch مثل عدم الاتصال او
خطا في الاستعلام ستظهر رسالة "لا يوجد فواتير" بالرغم من وجود فواتير
ولكن الخطأ أوهمك بغير ذلك.
تفضل التعديل الصحيح،
لاحظ أن نوع البيانات القادمة هو Object لعدم معرفة النتيجة القادمة هل هي رقم أم DBNull
PHP كود :
Try
Dim cmd As New OleDbCommand("select sum(item_price) from tbl_sales where ddate= @ddate", con)
cmd.Parameters.AddWithValue("@ddate", txt_date.Text)
If con.State <> ConnectionState.Open Then con.Open()
Dim c As Object= cmd.ExecuteScalar
If Not IsDBNull(c) Then
txt_decount.Text = c
Else
txt_Sum_Price.Text = "0000"
MsgBox(" لا يوجد فواتير مسجلة بهذا التاريخ", MsgBoxStyle.Critical, "لا يوجد بيانات")
End If
Catch
MsgBox(ex.Message)
Finally
con.Close()
End Try
