01-12-20, 10:02 AM
(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);) {
}
هكذا تضمن ان كائن الاتصال لن يعيش طويلا
السلام عليكم اخوي
عملت اللى قولتلي عليه ولكن للاسف المشكلة مازالت موجوده
