تقييم الموضوع :
  • 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 
وضعت الحل للفائدة رقم مرور عدة أيام عليه.
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Information ما هو الخطاء في الكود ProgressBar1 Mostafa201255411 1 193 26-11-25, 08:19 PM
آخر رد: asmarsou
  كيف نضبط قيمة progressbar في حال العد العكسي justforit 2 163 01-11-25, 09:43 AM
آخر رد: justforit
  [VB.NET] مساعدة تعديل على الكود ZEEN4ZEEN 2 210 08-10-25, 02:20 PM
آخر رد: salamandal
Rainbow [كود] تصحيح الخطاء في الكود محمد مسافر 2 1,051 28-08-25, 09:13 AM
آخر رد: محمد مسافر
Rainbow [كود] تصحيح الخطاء في الكود محمد مسافر 0 843 27-08-25, 04:05 PM
آخر رد: محمد مسافر
  ما هو الخطأ فى هذا الكود خالد كامل1 10 1,143 28-05-25, 09:16 PM
آخر رد: خالد كامل1
  جلب القسم بناء على قيمة مصمم هاوي 2 414 22-04-25, 08:38 PM
آخر رد: princelovelorn
  ارجو تعديل الكود بواستطة الاجراء المخزن new_programer 3 677 03-04-25, 02:44 PM
آخر رد: princelovelorn
  مساعدة في تحويل الكود من فيجوال بسيك 6 الى فيجوال دوت نت سيد أحمد 5 820 23-03-25, 10:54 PM
آخر رد: سيد أحمد
  ارجو تعديل الكود جلب البيانات عن طريق اجراء مخزن - مرفق مثال new_programer 0 620 05-02-25, 01:51 AM
آخر رد: new_programer

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


يقوم بقرائة الموضوع: