تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[تم الحل] مشكلة فى جمع سطر فى جدول مع سطر اخر
#1
السلام عليكم 
واجهتنى مشكلة وهى جمع استعلام مع استعلام اخر 
وهذا هو الكود المستخدم 
دا الاستعلام الاول
كود :
           string SqlStr = "SELECT sum(Amount)as Amount FROM CHEQUES WHERE(Beneficiary_Name = N'" + comboBox2.Text + "') AND(Project_Number = " + comboBox1.Text + ")or(Notes = N'" + comboBox2.Text + "'and(Project_Number = " + comboBox1.Text + ")) ";
           SqlDataAdapter Fadp = new SqlDataAdapter(SqlStr, con);
           DataTable Fdt = new DataTable();
           Fadp.Fill(Fdt);

ودا الاستعلام الثانى 

كود :
           string SqlStr2 = "SELECT sum(AMOUNT)as AMOUNT FROM PROJECTS_EXPENSES WHERE(ACCOUNT_NAME = '" + comboBox2.Text + "') AND(PROJECT_NUMBER = " + comboBox1.Text + ")";
           SqlDataAdapter Fadp2 = new SqlDataAdapter(SqlStr2, con);
           DataTable Fdt2 = new DataTable();
           Fadp2.Fill(Fdt2);


ودا كود عرض القيمه فى التيكست بوكس

كود :
           if (Fdt.Rows.Count > 0)
           {
               textBox7.Text = Fdt.Rows[0]["Amount"].ToString()+ Fdt.Rows[0]["AMOUNT"].ToString();
           }
           else
           {
               textBox7.Clear();
           }


المشكلة ان الجمع بيبقي بالشكل دا يعني لو مثلا عايز اجمع رقم 150 + 200 المفروض يبقوا 350
الكود بقا بيجمعهملى بالشكل دا 150200 يعني خلى الاسطر مع بعض مش القيمه زائد القيمه 
بتمنى حد يساعدنى فى حل المشكلة دى 
الرد
تم الشكر بواسطة:
#2
السلام عليكم احي الكريم
انت تقوم بجمع قيم نصية والمفروض تحوبل هذه القيم الى رقمية عبر الدالة int.Parse  ليتم الجمع 
ومن ثم تعيد تحوبل الكل الى سترينغ انظر الى هذا المثال
كود :
           textBox3.Text = (int.Parse(textBox1.Text) + int.Parse(textBox2.Text)).ToString();
الرد
تم الشكر بواسطة: asemshahen5 , maxruined
#3
(28-08-19, 08:45 PM)ابراهيم ايبو كتب : السلام عليكم احي الكريم
انت تقوم بجمع قيم نصية والمفروض تحوبل هذه القيم الى رقمية عبر الدالة int.Parse  ليتم الجمع 
ومن ثم تعيد تحوبل الكل الى سترينغ انظر الى هذا المثال
كود :
           textBox3.Text = (int.Parse(textBox1.Text) + int.Parse(textBox2.Text)).ToString();


اخوى انا فاهمك كويس 

انا عملت كدا بالفعل ولكن دا الخطأ اللى بيظهر
System.InvalidCastException: 'Object cannot be cast from DBNull to other types.'
الرد
تم الشكر بواسطة:
#4
عرف متغييرين من نوع انتجر او دوبل و ضع القيم بهما و قم بعملياتك الحسابية عليها .
الرد
تم الشكر بواسطة: ابراهيم ايبو , maxruined , maxruined
#5
(29-08-19, 10:00 PM)asemshahen5 كتب : عرف متغييرين من نوع انتجر او دوبل و ضع القيم بهما و قم بعملياتك الحسابية عليها .

السلام عليكم اخى العزيز 

عملت كدا فعلا بس المشكلة لا تزال موجوده .. نفس الرسالة بتظهر للاسف

لما بعمل متغييرين من نوع انتجر زى ما انت قولت الكود بيشتغل تمام ولكن فى حالة ان الداتا تيبل لما بتكون مفيهاش اي قيمه بيجبلي الخطأ دا 

يعني لما بيكون الدتا تيبل الاولى + الداتا تيبل التانيه فيهم ارقام الكود بيشتغل تمام ولكن لو كان في حاجه منهم مفيهاش اى ارقام بيجبلي الخطأ دا 

System.InvalidCastException: 'Object cannot be cast from DBNull to other types.'
الرد
تم الشكر بواسطة: asemshahen5 , ابراهيم ايبو
#6
السلام عليكم 
اخي ضع شرط اذا كانت هناك قيم null اجعلها قيمة صفر لتحل مشكلة القيم الفارغة
الرد
تم الشكر بواسطة: asemshahen5 , maxruined
#7
PHP كود :
           decimal Debit 0;
 
           decimal Credit 0;
 
           decimal Balance 0;
 
           if (DT.Rows.Count==0)
 
           {
 
               return;
 
           }
 
           Debit DT.Rows[0]["DebitAccount"].ToString() == DBNull.Value.ToString() ? Convert.ToDecimal(DT.Rows[0]["DebitAccount"].ToString());
 
           Credit DT.Rows[0]["CreditAccount"].ToString() == DBNull.Value.ToString() ? Convert.ToDecimal(DT.Rows[0]["CreditAccount"].ToString());
 
           Balance Debit Credit;
 
           MessageBox.Show(Balance.ToString()); 
الرد
تم الشكر بواسطة: maxruined , ابراهيم ايبو
#8
(31-08-19, 12:01 PM)ابراهيم ايبو كتب :
السلام عليكم 
اخي ضع شرط اذا كانت هناك قيم null اجعلها قيمة صفر لتحل مشكلة القيم الفارغة

شكراً جداً اخى العزيز 
استاذ عاصم لقي الحل وبعتهولى شكراً جداً ليك

(31-08-19, 04:08 PM)asemshahen5 كتب :
PHP كود :
           decimal Debit 0;
 
           decimal Credit 0;
 
           decimal Balance 0;
 
           if (DT.Rows.Count==0)
 
           {
 
               return;
 
           }
 
           Debit DT.Rows[0]["DebitAccount"].ToString() == DBNull.Value.ToString() ? Convert.ToDecimal(DT.Rows[0]["DebitAccount"].ToString());
 
           Credit DT.Rows[0]["CreditAccount"].ToString() == DBNull.Value.ToString() ? Convert.ToDecimal(DT.Rows[0]["CreditAccount"].ToString());
 
           Balance Debit Credit;
 
           MessageBox.Show(Balance.ToString()); 
دمت متالق دائماً اخى العزيز عاصم
الكود اشتغل تمام 
شكراً جداً جداً ليك
الرد
تم الشكر بواسطة: asemshahen5 , ابراهيم ايبو
#9
الحمد الله و الشكر الله .
الرد
تم الشكر بواسطة: maxruined , ابراهيم ايبو



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


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