تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة في إستدعاء Method
#1
السلام عليكم اخوانى 
عندى مشكلة في استدعاء ميثود .. والمشكلة كالاتى
انا عامل ميثود عباره عن لوب داخل الدتا جريد فيو بعدين بتعمل طرح ما بين قيمتين .. المهم هذه الميثود انا استدعتها بعد عمليه الاضافه مباشرة ولكن المشكلة ان الميثود مش بتشتغل بعد عمليه الاضافه مباشرة  .. ولكن اذا استدعيت هذه الميثود عن طريق اضافتها في زر بتشتغل تمام من غير اي مشاكل .. 

هذا هو كود الاضافه 
كود :
               con.Open();
               cmd = new SqlCommand("insert into Cash (Account_Name,Date,Invoice_No,Department,Description,Debit,Credit,Project_Name,Remarks)values(@Account_Name,@Date,@Invoice_No,@Department,@Description,@Debit,@Credit,@Project_Name,@Remarks)", con);
               cmd.Parameters.AddWithValue("Account_Name", cmbAccountName.Text);
               cmd.Parameters.AddWithValue("Date", dateTimePicker1.Text);
               cmd.Parameters.AddWithValue("Invoice_No", txtInvoiceNO.Text);
               cmd.Parameters.AddWithValue("Department", txtDepartment.Text);
               cmd.Parameters.AddWithValue("Description", txtDescription.Text);
               cmd.Parameters.AddWithValue("Debit", txtDebit.Text);
               cmd.Parameters.AddWithValue("Credit", txtCredit.Text);
               cmd.Parameters.AddWithValue("Project_Name", txtProjectname.Text);
               cmd.Parameters.AddWithValue("Remarks", txtRemarks.Text);
               cmd.ExecuteNonQuery();
               con.Close();
               MessageBox.Show("Add Successfully", "Add", MessageBoxButtons.OK, MessageBoxIcon.Information);
               ClearBoxes();
               FillData();
هذه إسم الميثود المراد تشغيلها بعد الاضافه      CalculateBalance();
وهذه هي الميثود 
كود :
           double TDebit=0, TCredit=0, Results;

           foreach(DataGridViewRow Loop in dataGridView1.Rows)
           {
               TDebit +=Convert.ToDouble(Loop.Cells[6].Value);
               TCredit += Convert.ToDouble(Loop.Cells[7].Value);
           }
           Results = TCredit - TDebit;
           txtbalance.Text = Results.ToString();
[b]بتمني من حد يساعدني في حل المشكلة دى .. شكراً مقدماً
[/b]
الرد }}}
تم الشكر بواسطة:
#2
هل تستخدم قاعدة بيانات اكسس ؟ ربما نسيت الاتصال مفتوح وبالتالي اخذ البرنامج وقت لكي يحدث البيانات

ارجو توضيح المزيد من الكود المستخدم
الرد }}}
تم الشكر بواسطة: mir2 , mir2 , maxruined
#3
اخي طريقة التعامل هذه مع البيانات تؤدي دائما لسلوك غير متوقع

الاسلوب الافضل هو استخدام SqlConnection محلي ينتهي بانتهاء العملية المطلوبة ، ابقاء كائن الاتصال حيا هو ما يسبب غالبا مشاكل عدم تحديث البيانات فعلا

الافضل ان تخزن نص الاتصال فقط بشكل عام ، وكل مرة نحتاج الى اتصال نقوم بعمل كائن اتصال SqlConnection باستخدام using

جرب ان تجعل الكود هكذا :

كود :
string connectionString = "نص الاتصال هنا";
string commandString = "insert into Cash (Account_Name,Date,Invoice_No,Department,Description,Debit,Credit,Project_Name,Remarks)values(@Account_Name,@Date,@Invoice_No,@Department,@Description,@Debit,@Credit,@Project_Name,@Remarks)";

using(SqlConnection conn = new SqlConnection(connectionString))
using(SqlCommand cmd = new SqlCommand(commandString, con);) {
 cmd.Parameters.AddWithValue("Account_Name", cmbAccountName.Text);
 cmd.Parameters.AddWithValue("Date", dateTimePicker1.Text);
 cmd.Parameters.AddWithValue("Invoice_No", txtInvoiceNO.Text);
 cmd.Parameters.AddWithValue("Department", txtDepartment.Text);
 cmd.Parameters.AddWithValue("Description", txtDescription.Text);
 cmd.Parameters.AddWithValue("Debit", txtDebit.Text);
 cmd.Parameters.AddWithValue("Credit", txtCredit.Text);
 cmd.Parameters.AddWithValue("Project_Name", txtProjectname.Text);
 cmd.Parameters.AddWithValue("Remarks", txtRemarks.Text);

 con.Open();
 cmd.ExecuteNonQuery();
 con.Close();
}

MessageBox.Show("Add Successfully", "Add", MessageBoxButtons.OK, MessageBoxIcon.Information);
ClearBoxes();
FillData();
CalculateBalance();

وكذلك عدل FillData لتستخدم اسلوب using :

كود :
using(SqlConnection conn = new SqlConnection(connectionString))
using(SqlCommand cmd = new SqlCommand(commandString, con);) {


}

هكذا تضمن ان كائن الاتصال لن يعيش طويلا
الرد }}}
تم الشكر بواسطة: Rabeea Qbaha , maxruined , ابراهيم ايبو
#4
(30-11-20, 10:01 PM)Anas Mahmoud كتب : اخي طريقة التعامل هذه مع البيانات تؤدي دائما لسلوك غير متوقع

الاسلوب الافضل هو استخدام SqlConnection محلي ينتهي بانتهاء العملية المطلوبة ، ابقاء كائن الاتصال حيا هو ما يسبب غالبا مشاكل عدم تحديث البيانات فعلا

الافضل ان تخزن نص الاتصال فقط بشكل عام ، وكل مرة نحتاج الى اتصال نقوم بعمل كائن اتصال SqlConnection باستخدام using

جرب ان تجعل الكود هكذا :

كود :
string connectionString = "نص الاتصال هنا";
string commandString = "insert into Cash (Account_Name,Date,Invoice_No,Department,Description,Debit,Credit,Project_Name,Remarks)values(@Account_Name,@Date,@Invoice_No,@Department,@Description,@Debit,@Credit,@Project_Name,@Remarks)";

using(SqlConnection conn = new SqlConnection(connectionString))
using(SqlCommand cmd = new SqlCommand(commandString, con);) {
 cmd.Parameters.AddWithValue("Account_Name", cmbAccountName.Text);
 cmd.Parameters.AddWithValue("Date", dateTimePicker1.Text);
 cmd.Parameters.AddWithValue("Invoice_No", txtInvoiceNO.Text);
 cmd.Parameters.AddWithValue("Department", txtDepartment.Text);
 cmd.Parameters.AddWithValue("Description", txtDescription.Text);
 cmd.Parameters.AddWithValue("Debit", txtDebit.Text);
 cmd.Parameters.AddWithValue("Credit", txtCredit.Text);
 cmd.Parameters.AddWithValue("Project_Name", txtProjectname.Text);
 cmd.Parameters.AddWithValue("Remarks", txtRemarks.Text);

 con.Open();
 cmd.ExecuteNonQuery();
 con.Close();
}

MessageBox.Show("Add Successfully", "Add", MessageBoxButtons.OK, MessageBoxIcon.Information);
ClearBoxes();
FillData();
CalculateBalance();

وكذلك عدل FillData لتستخدم اسلوب using :

كود :
using(SqlConnection conn = new SqlConnection(connectionString))
using(SqlCommand cmd = new SqlCommand(commandString, con);) {


}

هكذا تضمن ان كائن الاتصال لن يعيش طويلا

السلام عليكم اخوي 

عملت اللى قولتلي عليه ولكن للاسف المشكلة مازالت موجوده 
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو
#5
طيب اعطنا مثال صغير نعدل عليه ونتتبع المشكلة
الرد }}}
تم الشكر بواسطة: maxruined , ابراهيم ايبو
#6
(01-12-20, 11:56 AM)Anas Mahmoud كتب : طيب اعطنا مثال صغير نعدل عليه ونتتبع المشكلة

شكرا جداً اخوي .. تم حل المشكلة .. العيب كان من عندي انا 
ولكن لي استفسار بسيط
فى الكود بتاعي بتاع الاضافه في الاول انا فاتح الاتصال وبعد الاضافه مباشرة قفلت الاتصال .. سؤالي هو اين المشكلة في الاتصال .. اقصد يعني الاتصال مقفول فعلا وليس حياً كما ذكرت سابقاً .. بتمني توضيح اكتر لفكرتك .. شكراً مقدماً
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو
#7
احيانا يسبب مشاكل تبقى البيانات معلقة الى ان يحين وقت ال Timeout

نظريا نعم طالما تفتح الاتصال وتغلقه لن يحدث مشاكل

ولكن يبقى الاسلوب غير امن لانه معتمد على ان لا تنسى ان تغلق الاتصال

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

اسلوب using ليس معتمد على ذلك ، بعد نهاية جملة using ينتهي الكائن ويغلق الاتصال تماما

وهو الاسلوب المتبع من مايكروسوفت نفسها : https://docs.microsoft.com/en-us/dotnet/...at-ext-5.0
الرد }}}
تم الشكر بواسطة: maxruined , ابراهيم ايبو
#8
(01-12-20, 01:24 PM)Anas Mahmoud كتب : احيانا يسبب مشاكل تبقى البيانات معلقة الى ان يحين وقت ال Timeout

نظريا نعم طالما تفتح الاتصال وتغلقه لن يحدث مشاكل

ولكن يبقى الاسلوب غير امن لانه معتمد على ان لا تنسى ان تغلق الاتصال

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

اسلوب using ليس معتمد على ذلك ، بعد نهاية جملة using ينتهي الكائن ويغلق الاتصال تماما

وهو الاسلوب المتبع من مايكروسوفت نفسها : https://docs.microsoft.com/en-us/dotnet/...at-ext-5.0


شكراً جداً اخوي على معلوماتك القيمه

دمت بالف خير
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] مشكلة في مؤشر بايثون reem.564 0 262 08-05-25, 05:51 AM
آخر رد: reem.564
  [C#.NET] مشكلة عند عمل ال dataSet لعمل تقرير باستخدام ال Report Viewer ؟ Ashraf Baraka 0 321 04-12-24, 02:21 AM
آخر رد: Ashraf Baraka
  [C#.NET] مساعدة في مشكلة سورس كود kamel1978 5 1,007 30-11-24, 02:32 PM
آخر رد: altoki939
  مشكلة في اتصال سيد أحمد 2 430 24-09-24, 01:34 AM
آخر رد: Taha Okla
  [C#.NET] مشكلة حجم الادوات عند برمجة واجهات الويندوز Ahmed Alsharafi 1 460 03-08-24, 08:50 AM
آخر رد: WAEL ABED
Star [سؤال] مشكلة في السحب والأفلات داخل الفورم عند التصميم reduouo 1 621 02-03-24, 02:39 AM
آخر رد: Taha Okla
  مشكلة في المشاركة الدولية او خارج الشبكة issamsaid 1 920 22-11-23, 03:03 AM
آخر رد: HASAN6.0
  [تم الحل] مشكلة الاتصال بقاعده بيانات SQL على الشبكة maxruined 5 5,175 08-11-23, 01:00 AM
آخر رد: الحزين اليماني
  مشكلة في كلاس سطور الحياة 3 1,140 06-06-23, 09:47 AM
آخر رد: fouadhdfouad
  [سؤال] مشكلة في جملة التحديث سطور الحياة 4 1,387 02-06-23, 01:02 PM
آخر رد: سطور الحياة

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


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