چگونه استفاده کردن از حلقه forech در دیتاگرید ویو برای پیدا کردن مقدار سلول هر سطر - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

چگونه استفاده کردن از حلقه forech در دیتاگرید ویو برای پیدا کردن مقدار سلول هر سطر

0 امتیاز

سلام دوستان و اساتید.
من به روش زیر اطلاعات رو از دیتاگرید حذف می کنم. 
 

 

	


		int id =Convert.ToInt32(dgw2.CurrentRow.Cells[0].Value);
	


		        db.SPDeleteBook(id);
	

اما می خوام در هر سطر یک checkbox بزارم و اون سطر از چک باکس چک شده بود  آیدی رو برگردونه و حذف شه . فکر کنم باید از forech استفاده کنم اما نمی دونم چطور.ممنون میشم یکم راهنمایی کنید. ا گه تیکه کد بدین ممنون میشم

سوال شده فروردین 6, 1393  بوسیله ی rahgozar (امتیاز 224)   18 26 35

1 پاسخ

0 امتیاز

سلام

برای حذف همزمان چندین رکورد یه راهش استفاده از قطعه کد زیر هست.
در این روش درون یه حلقه، هر سطری که تیک اون زده شده، آی دی اون (کلید جدولت) برداشته میشه و بعدش در خارج از حلقه با یکبار وصل شدن به دیتابیس، اون رکوردها رو حذف میکنه.

کدها کاملا واضح هستن فقط توضیح در مورد متد Remove اینکه : آخرین کلید که اضافه میشه یه کاما هم به آخرش اضافه میشه که باید حذف بشه. به همین خاطر از متد remove استفاده شده که پارامتر اول به آخرین کاراکتر (همون کاما که اندیسش Length - 1 میشه) اشاره میکنه و پارامتر دوم هم که عدد 1 هست یعنی فقط همون 1 کاراکتر رو حذف کن.

string s = "";
 
    for (int i = 0; i <= karkard_dgv_karkard.RowCount - 1; i++)
            {
                if(Convert.ToBoolean(karkard_dgv_karkard.Rows[i].Cells["chkcol"].Value) == true)
                {
                    // شماره یا نام سلولی که آی دی جدولت درون اون قرار داره رو جایگزین کد زیر کن
                     
                    s = s + dataGridView1.Rows[i].Cells[1].Value + ",";
                }
             }
              if(s.Length > 1)
                 {
                    s = s.Remove(s.Length - 1, 1);                   
                    SqlConnection con = new SqlConnection("Data source =(local);initial catalog = testgrid;integrated security = true");
                    SqlCommand cmd = new SqlCommand("delete from student where id in (" + s + ")", con);
                    con.Open();
                    cmd.ExecuteNonQuery();
                    con.Close();
                 }

موفق باشید.

پاسخ داده شده فروردین 8, 1393 بوسیله ی veniz2008 (امتیاز 2,083)   1 5 21
...