تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
ما الخطاء فى هذا الكود جمع قيمة حقل بشرط
#1
السلام عليكم

  
 هذ اكود لجمع  حساب اجمالي

يعمل مرة واحدة اذا ضغط اكثرمن مرة يظهر خطاء

واذا لم يعثر على تطابق يظهر خطاء

كود :
Dim cmd2 As New OleDbCommand("select sum(total_price)from tbl_sales where item_namelike @item_name", con)
       cmd2.Parameters.Add("@item_name", OleDbType.VarChar).Value = "%" & combo_yaer.Text.Trim & "%"

       con.Open()
       Dim ssales As Integer = cmd2.ExecuteScalar
       txt_sales.Text = ssales
       con.Close()
الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام ورحمة الله وبركاته

اخى الفاضل new_programer

انتبه للمسافات بين كل كلمة حتى تتجنب من الاخطاء
كود :
Dim cmd2 As New OleDbCommand("select sum(total_price) from tbl_sales where item_name like @item_name", con)

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: عبد العزيز البسكري
#3
شكراً على الرد
لكن اخي الكود يعمل بشكل صحيح لكن لو غيرت القيم وبحثت مرة اأخر يظهر خطاء

وعند عدم العثور على بيانات يظهر خطاء

هل الكود دة صحيح
الرد }}}
تم الشكر بواسطة: elgokr
#4
(18-12-18, 07:42 AM)new_programer كتب : السلام عليكم

  
 هذ اكود لجمع  حساب اجمالي

يعمل مرة واحدة اذا ضغط اكثرمن مرة يظهر خطاء

واذا لم يعثر على تطابق يظهر خطاء

كود :
Dim cmd2 As New OleDbCommand("select sum(total_price)from tbl_sales where item_namelike @item_name", con)
       cmd2.Parameters.Add("@item_name", OleDbType.VarChar).Value = "%" & combo_yaer.Text.Trim & "%"

       con.Open()
       Dim ssales As Integer = cmd2.ExecuteScalar
       txt_sales.Text = ssales
       con.Close()


جرب هذا الكود :


كود :
Try
           Dim cmd As OleDbCommand = New OleDbCommand(SELECT sum(total_price) as tot FROM tbl_sales where item_namelike @item_name", con)

            cmd.Parameters.Add("@item_name", combo_yaer.Text.Trim)

           con.Open()

           Dim dr As OleDbDataReader = cmd.ExecuteReader

           If dr.Read = True Then
               txt_sales.Text = dr!tot
               dr.Close()
                con.Close()
           End If

       Catch ex As Exception
           txt_sales.Text = "0"
           dr.Close()
            con.Close()
       End Try
يا رحمن الدنيا والآخرة ورحيمهما
الرد }}}
تم الشكر بواسطة: elgokr , عبد العزيز البسكري
#5
السلام عليكم

عفوا استاذ
حريف برمجة
الكود لم يعمل معي
شكرا لك


اخيرا الحمد لله
توصلت للحل المشكلة كانت يجب وضع الكود داخل 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
الرد }}}
تم الشكر بواسطة: حريف برمجة , elgokr , elgokr
#6
(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 Objectcmd.ExecuteScalar
    If Not IsDBNull
(cThen
        txt_decount
.Text c
    Else
        txt_Sum_Price
.Text "0000"
 
       MsgBox(" لا يوجد فواتير مسجلة بهذا التاريخ"MsgBoxStyle.Critical"لا يوجد بيانات")
 
   End If
Catch
 
   MsgBox(ex.Message)
Finally
 
   con.Close()
End Try 
وضعت الحل للفائدة رقم مرور عدة أيام عليه.
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ممكن حل المشكلة فى الكود التالي - من مشاركة استاذنا القدير / عبدالله الدوسري new_programer 4 177 02-03-24, 07:36 PM
آخر رد: new_programer
  ماهو حل هذا الخطأ في الكود melad2002 7 275 25-02-24, 12:25 AM
آخر رد: justforit
  كيفية انشاء سكريبت لقاعدة بيانات من خلال الكود heem1986 1 214 20-02-24, 12:00 AM
آخر رد: Kamil
  [VB.NET] أرغب فى استخدام هذا الكود بالتحديد على الإصدار 10 AmeenRashed 3 211 19-01-24, 12:42 PM
آخر رد: Taha Okla
  [VB.NET] ما الخطأ فى هذا الكود - كود البحث المتعدد Ashraf Elafify 7 478 27-12-23, 10:50 PM
آخر رد: Ashraf Elafify
  [VB.NET] اريد تعديل في الكود عند طباعة DGV abu_hisham7 1 444 03-12-23, 02:40 AM
آخر رد: abu_hisham7
  [سؤال] كيف نستعيد قيمة من دالة ضمن مسار مستقل justforit 2 399 21-11-23, 10:51 AM
آخر رد: justforit
  كيف اجعل قيمة dateTimePicker2 تساوي dateTimePicker1 Adel27213 2 283 09-11-23, 09:07 PM
آخر رد: Adel27213
  طريقة جلب صف من قاعدة البيانات بشرط العمود ٤ لا يساوي فارغ Adel27213 2 427 07-11-23, 05:02 AM
آخر رد: Adel27213
  كيفية جمع قيمة على تاريخ معين واستنتاج تاريخ أخر Ahmed.vb 1 320 02-11-23, 03:52 AM
آخر رد: Taha Okla

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم