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

شاهد أولا شرح المثال بالصور :
البرنامج بشكل عام :
   

لأضافة سجل جديد نضعط على الزر NEW :
   

عند الضغط على زر New سوف ينفذ الإجراءات التالية :
- كما ترى أن مربع النص ID كان يحتوي على الرقم ثلاثة قبل الضغط على زر New، وبعد الضغط على زر New تم زيادة الرقم بمقدار واحد ليصبح رقم السجل الجديد 4.
- تم تفريغ جميع مربعات النصوص تمهيدا لكتابة البيانات الجديدة في مربعات النصوص

شاهد الصورة :
   

سنقوم بكتابة بيانات جديدة في مربعات النصوص :
   

ثم نضغط على زر Save بعد الإنتهاء من كتابة البيانات الجديدة في مربعات النصوص، فتظهر رسالة تفيد بأن عملية إصافة البيانات الجديدة إلى قاعدة البيانات تمت بنجاح :
   

بعد أن نضغط على زر ok الموجود في مربع حوار الرسالة سوف يقوم بإضافة البيانات الجديدة إلى قاعدة البيانات وسيظهر ذلك في DataGrid :

   

عملية تعديل البيانات :
سوف أقوم بالتعديل على السجل رقم 2 ولاحظ هنا سوف يتم التعديل على نفس السجل دون إدخاله من جديد تفاديا للتكرار :
قبل التعديل على السجل رقم 2 :
   

بعد التعديل على السجل رقم 2 :

   

الأكواد :
قم بالإعلان عن المتغيرات التالية :
PHP كود :
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\MyDB.accdb");
 
       OleDbCommand cmd;
 
       OleDbDataAdapter da;
 
       DataSet ds;
 
       BindingSource bs;
 
       string sqlstr

تحميل البيانات من قاعدة البيانات :
قم بإنشاء إجراء مستقل بعنوان LoadData :
PHP كود :
private void LoadData()
 
       {
 
           sqlstr "SELECT * FROM tblPerson";
 
           cmd = new OleDbCommand(sqlstrcon);
 
           da = new OleDbDataAdapter(cmd);
 
           ds = new DataSet();
 
           ds.Clear();
 
           da.Fill(ds"tblPerson");

 
           bs = new BindingSource();
 
           bs.DataSource ds.Tables["tblPerson"];

 
           txtID.DataBindings.Clear();
 
           txtFname.DataBindings.Clear();
 
           txtLname.DataBindings.Clear();
 
           txtAddress.DataBindings.Clear();

 
           txtID.DataBindings.Add("Text"bs"ID");
 
           txtFname.DataBindings.Add("Text"bs"Fname");
 
           txtLname.DataBindings.Add("Text"bs"Lname");
 
           txtAddress.DataBindings.Add("Text"bs"Adrs");

 
           dgvPerson.DataSource bs;
 
           ShowPosition();
 
       
ثم استدعي هذا الإجراء في الحدث Load للنموذج :
PHP كود :
LoadData(); 

زر New :
PHP كود :
private void btnNew_Click(object senderEventArgs e)
 
       {
 
           btnNew.Enabled false;
 
           
            txtID
.DataBindings.Clear();
 
           txtFname.DataBindings.Clear();
 
           txtLname.DataBindings.Clear();
 
           txtAddress.DataBindings.Clear();
 
           
            txtID
.Clear();
 
           txtFname.Clear();
 
           txtLname.Clear();
 
           txtAddress.Clear();

 
           int max;
 
           max ds.Tables["tblPerson"].Rows.Count ;
 
           txtID.Text Convert.ToString(max 1) ;

 
       

زر حفظ :
PHP كود :
private void btnSave_Click(object senderEventArgs e)
 
       {
 
           //If data exists then update data else insert data
 
           btnNew.Enabled true;
 
           
            con
.Open();
 
           sqlstr "SELECT * FROM tblPerson Where ID=@ID";
 
           cmd = new OleDbCommand(sqlstrcon);
 
           cmd.Parameters.Add("ID"OleDbType.Integer).Value txtID.Text;

 
           Int32 count Convert.ToInt32(cmd.ExecuteScalar());

 
           if (count 0)
 
           {
 
               string SavedItem txtID.Text;
 
               Int32 SavedRow;
 
               sqlstr "UPDATE tblPerson SET ID=@ID,Fname=@Fname,Lname=@Lname,Adrs=@Adrs Where ID=@ID";
 
               cmd = new OleDbCommand(sqlstrcon);
 
               cmd.Parameters.Add("@ID"OleDbType.Integer).Value txtID.Text;
 
               cmd.Parameters.Add("@Fname"OleDbType.VarWChar).Value txtFname.Text;
 
               cmd.Parameters.Add("@Lname"OleDbType.VarWChar).Value txtLname.Text;
 
               cmd.Parameters.Add("@Address"OleDbType.VarWChar).Value txtAddress.Text;
 
               cmd.Parameters.Add("@ID"OleDbType.Integer).Value txtID.Text;

 
               cmd.ExecuteNonQuery();

 
               LoadData();
 
               SavedRow bs.Find("ID"SavedItem);
 
               bs.Position SavedRow;
 
               con.Close();
 
               
                MessageBox
.Show("Upated Successfully");
 
              
                return
;
 
           }
 
           else
            
{
 
               sqlstr "INSERT INTO tblPerson(ID,Fname,Lname,Adrs) VAlues(@ID,@Fname,@Lname,@Adrs)";
 
               cmd = new OleDbCommand(sqlstrcon);
 
               cmd.Parameters.Add("@ID"OleDbType.Integer).Value txtID.Text;
 
               cmd.Parameters.Add("@Fname"OleDbType.VarWChar).Value txtFname.Text;
 
               cmd.Parameters.Add("@Lname"OleDbType.VarWChar).Value txtLname.Text;
 
               cmd.Parameters.Add("@Address"OleDbType.VarWChar).Value txtAddress.Text;
 
               
                cmd
.ExecuteNonQuery();
 
               con.Close();
 
               
                MessageBox
.Show("Inserted Successfully");
 
               LoadData();
 
               ShowPosition();
 
               bs.MoveLast();
 
           }
 
       

وباقي الأكواد سوف تشاهدها في المشروع :

.rar   khodor1985 - dgvTest.rar (الحجم : 85.84 ك ب / التحميلات : 29)

أتمنى لك التوفيق
الرد }}}}
تم الشكر بواسطة: Adrees , adel27 , ahmedabdelaliem , ahmedabdelaliem
#4
الأستـاذ خضر الشكر لا يفي بحقك دائماً مشاركاتك مرتبه
الرد }}}}
تم الشكر بواسطة:
#5
شكرا لكم أخي العزيز على اهتمامكم، فالترتيب والتركيب هو ضابطة من ضوابط المنطق للوصول للنتائج الصحيحة.
الرد }}}}
تم الشكر بواسطة:
#6
السلام عليكم ورحمة الله وبركاته
يعطيك العافية اخي
بالتوفيق
محاسب / أحمد عبد العليم
الرد }}}}
تم الشكر بواسطة: khodor1985
#7
شكرا استاذ خضر حليت المشكله شكرا لك كثير
الرد }}}}
تم الشكر بواسطة: khodor1985 , khodor1985


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [C#.NET] عرض البيانات في combobox mera.55 8 518 19-05-16, 01:13 PM
آخر رد: mera.55
  احتاج مساعدة في حفظ البيانات ؟؟ wal2007eed 7 375 16-05-16, 11:10 PM
آخر رد: Adrees
  [C#.NET] محتارة تبادل البيانات بينdata gridveiw وعرضها ؟؟ mera.55 4 331 24-04-16, 03:59 PM
آخر رد: WAEL ABED
Lightbulb [C#.NET] البحث عن البيانات بشرط معين و طباعتها info@cnr 2 219 21-04-16, 05:46 PM
آخر رد: info@cnr
  [سؤال] اضافة في قاعدة البيانات المبرمج العبقري 0 144 14-03-16, 07:51 PM
آخر رد: المبرمج العبقري
  [SQL] بطء تحميل البيانات ربيع 5 353 28-12-15, 03:57 PM
آخر رد: ربيع
Information [سؤال] كيف أنقل سجلات مختارة من DataGridView موجود في فورم إلى DataGridView في فورم آخر ؟ أشرف حكيم 28 1,801 12-10-15, 11:53 PM
آخر رد: أشرف حكيم
  [سؤال] كيف أحدد أكثر من صف في DataGridView في وقت واحد بالماوس ، وليس بالضغط على مفتاح Ctrl أشرف حكيم 5 406 06-10-15, 10:36 PM
آخر رد: أشرف حكيم
  رابط مباشر وسريع أو رابط تورنت فيجوال ستوديو كامل متكامل يتفاعل مع مع قواعد البيانات mrbadawi 0 270 01-07-15, 07:37 PM
آخر رد: mrbadawi
  [C#.NET] تعديل البيانات في الداتاغريد فيو غير مرتبطة بداتا سورس info@cnr 0 326 05-02-15, 12:24 PM
آخر رد: info@cnr

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم