27-03-23, 04:54 PM
وعليكم السلام ورحمة الله وبركاته. يبدو أن الكود سليم بشكل عام، ومن المفترض أن يعمل بشكل صحيح. ومع ذلك، يمكنك مراجعة بعض النقاط التالية لتحديد مشكلة عدم عرض البيانات في مربعات النص:
إذا كانت جميع النقاط أعلاه صحيحة ولا تزال تواجه المشكلة، يمكنك إضافة معالجة الأخطاء (error handling) وتتبع الأخطاء المحتملة لمعرفة المشكلة بشكل أفضل.
بالطبع، سأقوم بإعادة تنظيم الكود قليلاً ودمج الدالة show_record مع كود الاستدعاء. وأعتقد أن الأفضل هو تمرير DataGridView كمعامل للدالة show_record واستخدامه داخل الدالة بدلاً من إعادة تنظيم الكود في النموذج الرئيسي (Form1).
كود الدالة المعدل:
والآن يمكنك استدعاء الدالة من حدث النقر على الزر في GridView كالتالي:
أعتقد أن هذا الكود يجب أن يعمل بشكل جيد. تأكد من تحديث أسماء مربعات النص والأزرار وتحديث الأحداث والمعاملات وفقاً لكود التطبيق الخاص بك. إذا كنت لا تزال تواجه مشاكل، يرجى إعلامي بالتفاصيل حتى أتمكن من مساعدتك بشكل أفضل.
- تأكد من أن اتصال قاعدة البيانات صحيح. تأكد من تعريف الاتصال في Class1.con وأنه يشير إلى قاعدة البيانات الصحيحة.
- تأكد من أن الجدول "users" في قاعدة البيانات يحتوي على الأعمدة الصحيحة (name, password, address).
- تأكد من أن قيمة x المرسلة إلى الدالة show_record صحيحة وتحتوي على اسم المستخدم الذي ترغب في عرض بياناته.
- تأكد من أن الحدث الذي يتم فيه استدعاء الدالة show_record يتم تنفيذه بشكل صحيح عند النقر فوق الزر في GridView. يمكنك استخدام التصحيح (debugging) للتأكد من تنفيذ الكود بشكل صحيح.
- تأكد من أن textBox1, textBox2 و textBox3 هم مربعات النص المطلوبة لعرض البيانات فيها.
إذا كانت جميع النقاط أعلاه صحيحة ولا تزال تواجه المشكلة، يمكنك إضافة معالجة الأخطاء (error handling) وتتبع الأخطاء المحتملة لمعرفة المشكلة بشكل أفضل.
بالطبع، سأقوم بإعادة تنظيم الكود قليلاً ودمج الدالة show_record مع كود الاستدعاء. وأعتقد أن الأفضل هو تمرير DataGridView كمعامل للدالة show_record واستخدامه داخل الدالة بدلاً من إعادة تنظيم الكود في النموذج الرئيسي (Form1).
كود الدالة المعدل:
PHP كود :
public void ShowRecord(DataGridView dataGridView)
{
if (dataGridView.CurrentRow == null)
{
MessageBox.Show("الرجاء تحديد صف في الجدول لعرض البيانات.");
return;
}
string userName = Convert.ToString(dataGridView.CurrentRow.Cells[1].Value);
string sql = "select * from users where name = N'" + userName + "'";
SqlDataAdapter adp = new SqlDataAdapter(sql, Class1.con);
DataTable dt = new DataTable();
adp.Fill(dt);
if (dt.Rows.Count == 0)
{
MessageBox.Show("لم يتم العثور على سجل.");
}
else
{
DataRow dr = dt.Rows[0];
textBox1.Text = Convert.ToString(dr["name"]);
textBox2.Text = Convert.ToString(dr["password"]);
textBox3.Text = Convert.ToString(dr["address"]);
SqlCommandBuilder cmd = new SqlCommandBuilder(adp);
adp.Update(dt);
button1.Enabled = false;
button2.Enabled = true;
button3.Enabled = true;
}
}
والآن يمكنك استدعاء الدالة من حدث النقر على الزر في GridView كالتالي:
PHP كود :
ShowRecord(dataGridView1);
أعتقد أن هذا الكود يجب أن يعمل بشكل جيد. تأكد من تحديث أسماء مربعات النص والأزرار وتحديث الأحداث والمعاملات وفقاً لكود التطبيق الخاص بك. إذا كنت لا تزال تواجه مشاكل، يرجى إعلامي بالتفاصيل حتى أتمكن من مساعدتك بشكل أفضل.
