منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : عرض بيانات قريد فيو في تكست بوكس
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته 
لدي دالة تالية لعرض بيانات 
عندما اضغط علي زر في قريد فيو اريد يعرض بيانات في تكست بوكس 
لكن كود لايعرض ما الحل 
كود عرض
PHP كود :
public void show_record(string x)
 
       {
 
           string sql "select *from users where name=N'" + (x) + "'";
 
           SqlDataAdapter adp = new SqlDataAdapter(sqlClass1.con);
 
           DataSet ds = new DataSet();
 
           DataTable dt = new DataTable();
 
           adp.Fill(ds);
 
           dt ds.Tables[0];
 
           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.TextConvert.ToString(dr["address"]);
 
               SqlCommandBuilder cmd = new SqlCommandBuilder(adp);
 
               adp.Update(dt);
 
               button1.Enabled false;
 
               button2.Enabled true;
 
               button3.Enabled true;

 
           }
 
       
كود استدعاء دالة 
PHP كود :
Form1 frm = new Form1();
 
           frm.show_record(Convert.ToStringdataGridView1.CurrentRow.Cells[1].Value)); 
وعليكم السلام ورحمة الله وبركاته. يبدو أن الكود سليم بشكل عام، ومن المفترض أن يعمل بشكل صحيح. ومع ذلك، يمكنك مراجعة بعض النقاط التالية لتحديد مشكلة عدم عرض البيانات في مربعات النص:


  1. تأكد من أن اتصال قاعدة البيانات صحيح. تأكد من تعريف الاتصال في Class1.con وأنه يشير إلى قاعدة البيانات الصحيحة.

  2. تأكد من أن الجدول "users" في قاعدة البيانات يحتوي على الأعمدة الصحيحة (name, password, address).

  3. تأكد من أن قيمة x المرسلة إلى الدالة show_record صحيحة وتحتوي على اسم المستخدم الذي ترغب في عرض بياناته.

  4. تأكد من أن الحدث الذي يتم فيه استدعاء الدالة show_record يتم تنفيذه بشكل صحيح عند النقر فوق الزر في GridView. يمكنك استخدام التصحيح (debugging) للتأكد من تنفيذ الكود بشكل صحيح.

  5. تأكد من أن 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(sqlClass1.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); 


أعتقد أن هذا الكود يجب أن يعمل بشكل جيد. تأكد من تحديث أسماء مربعات النص والأزرار وتحديث الأحداث والمعاملات وفقاً لكود التطبيق الخاص بك. إذا كنت لا تزال تواجه مشاكل، يرجى إعلامي بالتفاصيل حتى أتمكن من مساعدتك بشكل أفضل.