PDA

View Full Version : سوال: حذف چند رديف از datagridview



rahe behtari hast
سه شنبه 07 آذر 1391, 13:43 عصر
سلام
ما وقتي بخوايم يك رديف را از datagridvew حذف كنيم به اين شكل عمل ميكنيم

يك proc ميسازيم توي sqlserer



create proc deletetable
@name nvarchar(50)
as
begin
delete from table where (name=@name)
end



دست آخر هم تيو سي شارپ ميگفتيم
اون رديفي كه انتخاب شد name رو ازش برداره بده به اس كيو ال

حالا اگه بخوايم با datagridview يك سري از رديفها رو انتخاب كنيم
اولا چطور از name هاشون مطلع بشيم
ثانيا توي sql چه proc بنويسيم كه اونها رو حذف كنه؟

ممنون

rahe behtari hast
سه شنبه 21 آذر 1391, 08:19 صبح
دوستان من يك بار ديگه سوالم رو تكرار كنم چون جوابش برام مهمه

ما عموما براي عمليات حذف از اين روش استفاده ميكنيم كه رديفي كه در ديتاگريدويو انتخاب شده مقدار ستون كليد رو ميفرستيم براي اس كيو ال و اون رو حذف ميكنيم
حالا ميخواهم همين كار رو گروهي انجام بدم. به طور مثال طرف به جاي يك رديف 10 رديف از ديتاگريدويو رو انتخاب كنه و دليت رو بزنه

چيزي كه به نظر خودم ميرسه
ما بايد يك آرايه بسازيم و مقدار ستون كليد اون چند رديف رو بريزيم توش
بعد با استفاده از يك حلقه دونه دونه آرايه رو بخونه و اون رديف رو حذف كنه

فقط مشكل اينه كه چطور مواردي كه داخل ديتاگريدويو مشخص شده رو پيدا كنم؟

ali_habibi1384
سه شنبه 21 آذر 1391, 08:38 صبح
فرض كنيد براي هر سطر از گريد يه چك باكس گذاشتيد كه هركدوم رو كه قراره حذف كنه كاربر انتخاب كنه.حالا بازدن كليد delete يه حلقه for اجرا ميكني و همون كاري رو كه قبلا براش انجام داده بودي رو انجام ميدي يعني يكي يكي حذف ميكني هركدوم كه چك باكسش تيك خورده بود حذف كنه.

Y_Safaiee
سه شنبه 21 آذر 1391, 08:40 صبح
سلام دوست من

الف :اگه دیتاگرید حالت MultiSelect داره(یعنی کاربر برای مشخص کردن آیتم های مورد نظرش کنترل رو میگیره و رو سطرهای مورد نظرش کلیک میکنه تا انتخاب شن) کد حذف بسیار ساده است و بدین شکله :


foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Selected == true)
{
MessageBox.Show(row.Cells[1].Value.ToString());
}
}


من تو کد بالا گفتم سلول 1 سطرهای انتخاب شده رو برای پیغام بده شما سلول مورد نظرتو بفرست به SP

ب :اگه برای هر سطر یه چک باکس گذاشتی تا توسط اون انتخاب کنه باید تو هر سطر اون چکباکس رو تست و در صورت True بودن سلول مورد نظرتو بفرستی به پروسیجرت(کدش مثه کد بالاست فقط جای شرط باید اون سلول چکباکس رو به بولین تبدیل و سپس بررسیش کنی)

موفق باشی
بایت بایت