منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
ما الخطاء فى هذا الكود جمع قيمة حقل بشرط - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : ما الخطاء فى هذا الكود جمع قيمة حقل بشرط (/showthread.php?tid=27943)



ما الخطاء فى هذا الكود جمع قيمة حقل بشرط - new_programer - 18-12-18

السلام عليكم

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

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

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

كود :
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()



RE: ما الخطاء فى هذا الكود - elgokr - 18-12-18

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

اخى الفاضل new_programer

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

تحياتى لك
وتمنياتى لك التوفيق



RE: ما الخطاء فى هذا الكود - new_programer - 18-12-18

شكراً على الرد
لكن اخي الكود يعمل بشكل صحيح لكن لو غيرت القيم وبحثت مرة اأخر يظهر خطاء

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

هل الكود دة صحيح


RE: ما الخطاء فى هذا الكود - حريف برمجة - 18-12-18

(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



RE: ما الخطاء فى هذا الكود جمع قيمة حقل بشرط - new_programer - 21-12-18

السلام عليكم

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


اخيرا الحمد لله
توصلت للحل المشكلة كانت يجب وضع الكود داخل 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



RE: ما الخطاء فى هذا الكود جمع قيمة حقل بشرط - a.wagdi - 30-12-18

(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 
وضعت الحل للفائدة رقم مرور عدة أيام عليه.