السلام عليكم لدي كود تالي لتعديل بيانات في جدول فاتورة وتفاصيل فاتورة
يتم تعديل بيانات في جدول فاتورة لكن تفاصيل فاتورة تظل اصناف كم هيا
try{// تعريف المتغير للحصول على اسم المحل من عنصر التحكم
string importerName = IMPORTERNAME.Text;// جملة الاستعلام باستخدام معلمة بدلاً من القيمة الثابتة
string query ="SELECT IMPORTERNAME, SUM(DebtAmount) AS TotalDebt "+"FROM BUYBILL "+"WHERE IMPORTERNAME = @importerName AND DebtAmount > 0 "+"GROUP BY IMPORTERNAME";// إنشاء SqlDataAdapter مع جملة الاستعلام والاتصال بقاعدة البياناتSqlDataAdapter a =newSqlDataAdapter(query,Class1.con);// إضافة المعلمة إلى SqlDataAdapter
a.SelectCommand.Parameters.AddWithValue("@importerName", importerName);// إنشاء DataTable لملء البيانات المسترجعةDataTable d =newDataTable();// ملء DataTable باستخدام SqlDataAdapter
a.Fill(d);// عرض معلومات الدينif(d.Rows.Count>0){
string tt = d.Rows[0]["TotalDebt"].ToString();MessageBox.Show("دين المحل: "+ tt);}// التحقق من اختيارات المستخدمif(IMPORTERNAME.SelectedIndex<0){MessageBox.Show("يرجى اختيار اسم الزبون","تنبيه");
IMPORTERNAME.Select();return;}if(BUYTYPE.SelectedIndex<0){MessageBox.Show("يرجى اختيار نوع الفاتورة","تنبيه");
BUYTYPE.Select();return;}if(dataGridView1.Rows.Count==0){MessageBox.Show("لا توجد أصناف لحفظها","تنبيه");return;}// التحقق من وجود الفاتورةDataTable dt =newDataTable();SqlDataAdapter adp =newSqlDataAdapter("SELECT * FROM buybill WHERE buycode=@buycode",Class1.con);
adp.SelectCommand.Parameters.AddWithValue("@buycode", BUYCODE.Text);
adp.Fill(dt);if(dt.Rows.Count>0){// تحديث بيانات الفاتورةDataRow existingRow = dt.Rows[0];
existingRow["BUYTYPE"]= BUYTYPE.Text;
existingRow["IMPORTERNAME"]= IMPORTERNAME.Text;
existingRow["NOTES"]= NOTES.Text;
existingRow["BUYDATE"]= BUYDATE.Value;
existingRow["TOTAL"]=Convert.ToDecimal(total_.Text);
existingRow["TOTAL_ARBIC"]= totalar.Text;
existingRow["TOTALQTY"]=Convert.ToInt32(totalqty.Text);
existingRow["DebtAmount"]=Convert.ToDecimal(total_.Text);SqlCommandBuilder save =newSqlCommandBuilder(adp);
adp.Update(dt);// تحديث تفاصيل الفاتورةDataTable dtDetails =newDataTable();SqlDataAdapter detailAdp =newSqlDataAdapter("SELECT * FROM BUY_DET WHERE BUYCODE=@buycode",Class1.con);
detailAdp.SelectCommand.Parameters.AddWithValue("@buycode", BUYCODE.Text);
detailAdp.Fill(dtDetails);// تحديث أو إضافة تفاصيل جديدة
foreach (DataGridViewRow row in dataGridView1.Rows){
string itemCode = row.Cells[0].Value.ToString();int qty =Convert.ToInt32(row.Cells[3].Value);// تحقق مما إذا كان العنصر موجود بالفعل في تفاصيل الفاتورةDataRow existingDetail = dtDetails.AsEnumerable().FirstOrDefault(r => r.Field<string>("ITEMCODE")== itemCode);if(existingDetail != null){// تحديث الكمية والسعر
existingDetail["QTY"]= qty;
existingDetail["PRICE"]= row.Cells[2].Value;
existingDetail["TOTAL"]=Convert.ToDecimal(row.Cells[2].Value)* qty;}else{// إضافة تفاصيل جديدةDataRow newDetailRow = dtDetails.NewRow();
newDetailRow["BUYCODE"]= BUYCODE.Text;
newDetailRow["ITEMCODE"]= itemCode;
newDetailRow["ITEMNAME"]= row.Cells[1].Value;
newDetailRow["PRICE"]= row.Cells[2].Value;
newDetailRow["QTY"]= qty;
newDetailRow["TOTAL"]=Convert.ToDecimal(row.Cells[2].Value)* qty;
dtDetails.Rows.Add(newDetailRow);}UpdateItemQuantity(itemCode, qty);}SqlCommandBuilder detailCmd =newSqlCommandBuilder(detailAdp);
detailAdp.Update(dtDetails);MessageBox.Show("تم تعديل بيانات الفاتورة بنجاح وتحديث كمية في المخزن","رسالة تأكيد",MessageBoxButtons.OK,MessageBoxIcon.Information);
button1_Click(null, null);}}catch(Exception ex){MessageBox.Show(ex.Message);}
السؤال
ايمن ميلاد
السلام عليكم لدي كود تالي لتعديل بيانات في جدول فاتورة وتفاصيل فاتورة
يتم تعديل بيانات في جدول فاتورة لكن تفاصيل فاتورة تظل اصناف كم هيا
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.