ايمن ميلاد نشر 31 ديسمبر 2024 أرسل تقرير نشر 31 ديسمبر 2024 السلام عليكم لدي كود عرض بيانات فاتورة وتفاصيل الفاتورة لماذا لا يتم عرض بيانات public void show_details(string id) { try { // إنشاء DataTable وملء البيانات باستخدام SqlDataAdapter string sql = "SELECT * FROM BUYBILL WHERE BUYCODE = '" + (id)+ "'"; DataTable dt = new DataTable(); SqlDataAdapter adp = new SqlDataAdapter(sql, Class1.con); adp.Fill(dt); if (dt.Rows.Count == 0) { MessageBox.Show("يرجى التأكد من رقم الفاتورة", "تنبيه", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { DataRow row = dt.Rows[0]; BUYCODE.Text = row["BUYCODE"].ToString(); BUYTYPE.Text = row["BUYTYPE"].ToString(); IMPORTERNAME.Text = row["IMPORTERNAME"].ToString(); if (row["BUYDATE"] != DBNull.Value) BUYDATE.Value = DateTime.Parse(row["BUYDATE"].ToString()).Date; NOTES.Text = row["NOTES"].ToString(); total_.Text = row["TOTAL"].ToString(); totalqty.Text = row["TOTALQTY"].ToString(); DataTable dt_ = new DataTable(); string sql_ = "SELECT * FROM BUY_DET WHERE BUYCODE = N'" + (id) + "'"; SqlDataAdapter adp_ = new SqlDataAdapter(sql_, Class1.con); adp_.Fill(dt_); // إضافة أعمدة إلى DataGridView إذا لم تكن موجودة بالفعل if (dataGridView1.Columns.Count == 0) { dataGridView1.Columns.Add("ITEMCODE", "كود الصنف"); dataGridView1.Columns.Add("ITEMNAME", "اسم الصنف"); dataGridView1.Columns.Add("PRICE", "السعر"); dataGridView1.Columns.Add("QTY", "الكمية"); dataGridView1.Columns.Add("TOTAL", "الإجمالي"); } dataGridView1.Rows.Clear(); foreach (DataRow detailRow in dt_.Rows) { dataGridView1.Rows.Add(detailRow["ITEMCODE"], detailRow["ITEMNAME"], detailRow["PRICE"], detailRow["QTY"], detailRow["TOTAL"]); } btn_edit.Enabled = true; btn_save.Enabled = false; } } catch (Exception ex) { MessageBox.Show("حدث خطأ: " + ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error); } كود استدعاء دالة BUYBILL frm = new BUYBILL(); frm.show_details(dataGridView1.CurrentRow.Cells[1].Value.ToString()); this.Close(); 1 اقتباس
0 عبد الوهاب بومعراف نشر 31 ديسمبر 2024 أرسل تقرير نشر 31 ديسمبر 2024 المشكلة أنك تقوم بإنشاء النموذج وتمرير البيانات له ولكن لا تقوم بعرضه قبل إغلاق النموذج الحالي لذا يجب استدعاء Show() أو ShowDialog() لعرض النموذج الجديد: this.Close(); وهذا خطأ لأنه يغلق النافذة قبل عرض البيانات والحل هو إضافة Show() قبل إغلاق النموذج الحالي: BUYBILL frm = new BUYBILL(); frm.show_details(dataGridView1.CurrentRow.Cells[1].Value.ToString()); frm.Show(); this.Close(); أو: BUYBILL frm = new BUYBILL(); frm.show_details(dataGridView1.CurrentRow.Cells[1].Value.ToString()); frm.ShowDialog(); this.Close(); 1 اقتباس
0 ايمن ميلاد نشر الأربعاء في 15:01 الكاتب أرسل تقرير نشر الأربعاء في 15:01 (معدل) ظهرت البيانات الان لماذا عندما اعدل فاتورة لكي اضيف صنف جديد لها يتم اضافة اعمدة جديدة لداتا قريد فيو try { // تعريف المتغير للحصول على اسم المحل من عنصر التحكم DialogResult result = MessageBox.Show("هل أنت متأكد من أنك تريد تعديل البيانات؟", "تأكيد التعديل", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if ((result == DialogResult.Yes)) { if (BUYTYPE.SelectedIndex < 0) { MessageBox.Show("يرجي اختيار نوع الفاتورة", "تنبيه"); BUYTYPE.Select(); return; } if (dataGridView1.Rows.Count == 0) { MessageBox.Show("لاتوجد أصناف لتعدليها ", "تنبيه"); return; } DataTable dt = new DataTable(); SqlDataAdapter adp = new SqlDataAdapter("select *from buybill where buycode='" + BUYCODE.Text + "'", Class1.con); adp.Fill(dt); if (dt.Rows.Count == 0) { int code = Class1.CODE_GENE("BUYBILL", "ID") + 1; BUYCODE.Text = code.ToString(); } else { DataRow dr = dt.Rows[0]; dr["BUYCODE"] = BUYCODE.Text; dr["BUYTYPE"] = BUYTYPE.Text; dr["IMPORTERNAME"] = IMPORTERNAME.Text; dr["NOTES"] = NOTES.Text; dr["BUYDATE"] = BUYDATE.Value; dr["TOTAL"] = Convert.ToDecimal(total_.Text); dr["TOTAL_ARBIC"] = totalar.Text; dr["TOTALQTY"] = Convert.ToInt32(totalqty.Text); dr["DebtAmount"] = Convert.ToDecimal(total_.Text); dt.Rows.Add(dr); SqlCommandBuilder save = new SqlCommandBuilder(adp); adp.Update(dt); SqlCommand cmd_del = new SqlCommand(); cmd_del.Connection = Class1.con; cmd_del.CommandText = "DELETE FROM BUY_DET WHERE BUYCODE ='" + BUYCODE.Text + "'"; cmd_del.ExecuteNonQuery(); DataTable dtDetails = new DataTable(); adp = new SqlDataAdapter("SELECT *FROM BUY_DET", Class1.con); adp.Fill(dtDetails); if (dataGridView1.Columns.Count == 0) { dataGridView1.Columns.Add("ITEMCODE", "كود الصنف"); dataGridView1.Columns.Add("ITEMNAME", "اسم الصنف"); dataGridView1.Columns.Add("PRICE", "السعر"); dataGridView1.Columns.Add("QTY", "الكمية"); dataGridView1.Columns.Add("TOTAL", "الإجمالي"); } dataGridView1.Rows.Clear(); for (int i = 0; i < dataGridView1.Rows.Count; i++) { DataRow dr_ = dtDetails.NewRow(); dr_["BUYCODE"] = BUYCODE.Text; dr_["ITEMCODE"] = dataGridView1.Rows[i].Cells[0].Value; dr_["ITEMNAME"] = dataGridView1.Rows[i].Cells[1].Value; dr_["PRICE"] = dataGridView1.Rows[i].Cells[2].Value; //dr_["TOTAL"] = total_.Text; dr_["QTY"] = dataGridView1.Rows[i].Cells[3].Value; dtDetails.Rows.Add(dr_); dr_["TOTAL"] = Convert.ToDecimal(dataGridView1.Rows[i].Cells[2].Value) * Convert.ToDecimal(dataGridView1.Rows[i].Cells[3].Value); string itemCode = dataGridView1.Rows[i].Cells[0].Value.ToString(); int qty = Convert.ToInt32(dataGridView1.Rows[i].Cells[3].Value); UpdateItemQuantity(itemCode, qty); } SqlCommandBuilder cmd_ = new SqlCommandBuilder(adp); adp.Update(dtDetails); MessageBox.Show(" تم حفظ تعديل بيانات فاتورة بنجاح وتحديث كمية في المخزن ", "رسالة تأكيد", MessageBoxButtons.OK, MessageBoxIcon.Information); button1_Click(null, null); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } تم التعديل في الأربعاء في 15:30 بواسطة ايمن ميلاد اقتباس
السؤال
ايمن ميلاد
السلام عليكم لدي كود عرض بيانات فاتورة وتفاصيل الفاتورة لماذا لا يتم عرض بيانات
كود استدعاء دالة
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.