حذف کردن چند رکورد از GridView با استفاده از CheckBox در Wnidows Form

شنبه 9 آبان 1394

در این مقاله قصد داریم در Windows form یک GridView ایجاد کنیم که بتوان با استفاده از ChechBox چند رکورد را انتخاب و حذف کرد و GridView و دیتابیس به روزرسانی شوند.

حذف کردن  چند رکورد از GridView با استفاده از CheckBox در Wnidows Form

 در این مقاله قصد داریم در  Windows form یک GridView  ایجاد کنیم که بتوان با استفاده از ChechBox چند رکورد را انتخاب و حذف کرد و GridView و دیتابیس به روزرسانی شوند.

برای شروع یک پروزه  Windows form  ایجاد کرده و داخل پنجره فرم  یک  DataGridView قرار می دهیم . در sql یک دیتابیس بایک جدول به صورت زیر ایجاد میکنیم .

مانند تصویر ،برای اتصال دیتابیس از روش زیر استفاده میکنیم .

برای حذف و اضافه کردن ستونهای لازم از Edit column استفاده میکنیم.

برای اضافه کردن یک ستون انتخاب از Edit columns بر روی add  کلیک کرده و مانند تصویر زیر از قسمت Unbound column یک ستون اضافه میکنیم.

توجه داشته باشید که برای ستون انتخاب از DataGridViewCheckBoxColumn استفاده میکنیم.

برای اتصال داده ها در datagridview کدهای زیر وارد میکنیم.

public partial class Form1 : Form
     {
        SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Students;User ID=sa;Password=123");
        int Index = 0;
        SqlDataAdapter da;  
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            filldata(); // TODO: This line of code loads data into the 'studentsDataSet.studentdetails' table. You can move, or remove it, as needed.
            this.studentdetailsTableAdapter.Fill(this.studentsDataSet.studentdetails);

        }
        public void filldata()
        {
            da = new SqlDataAdapter("select * from studentdetails", con);
            DataTable dt = new DataTable();
            da.Fill(dt);
            //dataGridView1.DataSource = da;
            dataGridView1.AutoGenerateColumns = false;
             }
}

اکنون فرم ما به صورت زیر ظاهر می شود. در ینجا یک کلید حذف هم قرار داده شده است.

توجه داشته باشید که خاصیت ReadOnly  برای ستون انتخاب false باشد .

برای حذف کردن رکوردهای انتخاب شده از کد زیر استفاده میکنیم.

به دو نکته باید توجه داشت که :

رکودهای انتخاب شده در لیست ذخیره شوند.

با استفاده از foreach ، رکوردهایی را که  ID آنها در لیست حذف ذخیره شده اند پاک میکنیم.

  private void button1_Click(object sender, EventArgs e)
        {
            List<string> selectedItem = new List<string>();
            DataGridViewRow drow = new DataGridViewRow();
            for (int i = 0; i <= dataGridView1.Rows.Count - 1; i++)
            {
                drow = dataGridView1.Rows[i];
                if (Convert.ToBoolean(drow.Cells[4].Value) == true) //checking if  checked or not.  
                {
                    string id = drow.Cells[0].Value.ToString();
                    selectedItem.Add(id); //If checked adding it to the list  
                }
            }
            con.Open();
            foreach (string s in selectedItem) //using foreach loop to delete the records stored in list.  
            {
                SqlCommand cmd = new SqlCommand("delete from studentdetails where RollNo='" + s + "'", con);
                int result = cmd.ExecuteNonQuery();
            }
            
            con.Close();
            MessageBox.Show("حذف شد ");
      
            da = new SqlDataAdapter("select * from studentdetails", con);
            DataTable dt = new DataTable();
            da.Fill(dt);

            dataGridView1.DataSource = dt;
        }

در تصاویر زیر نتیجه اعمال کلید حذف را روی GridView  مشاهده میکنید.

بعد از اعمال کلید حذف:

آموزش سی شارپ

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • C#.net
  • 4k بازدید
  • 4 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید