PDA

View Full Version : سوال: ثبت اطلاعات در بانک فقط با یک کلیک ماوس در checkbox



kh1387
شنبه 06 مهر 1387, 18:38 عصر
با سلام
من یک DataGrid دارم که درونش مطالبی نمایش داده میشه و در آخر یک ستون bool داره.
حالا می خواهم طوری باشه که وقتی کاربر اطلاعات رو فقط در یک سطر تغییر داد، و بعد از آن بر روی checkbox در ستون آخر تیک زد، تمامی اطلاعات فقط و فقط همان سطر در بانک ذخیره شود.
ممنون می شوم دوستان راهنمایی کنند.:لبخندساده:

asefy2008
شنبه 06 مهر 1387, 19:11 عصر
فکر کنم اگه توی یکی از رویدادهایی که توش changداره بری و شرط این بزاری که اگر اون سلول checkboxش ترو شد بیا ذخیره کن مشکلت حل شه البته شاید راه حل بهتری هم وجودداشته باشه.

hojjat_gh
شنبه 06 مهر 1387, 19:33 عصر
با سلام
من یک DataGrid دارم که درونش مطالبی نمایش داده میشه و در آخر یک ستون bool داره.
حالا می خواهم طوری باشه که وقتی کاربر اطلاعات رو فقط در یک سطر تغییر داد، و بعد از آن بر روی checkbox در ستون آخر تیک زد، تمامی اطلاعات فقط و فقط همان سطر در بانک ذخیره شود.
ممنون می شوم دوستان راهنمایی کنند.:لبخندساده:
میتونی از این کد استفاده کنی:


private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
try
{
if (e.ColumnIndex == 0)
{
if (dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString() == "False")
{
//کدهای مربوط به اینسرت رو اینجا بنویس
}

}
dataGridView1.EndEdit();
}
catch { }
}

Xcalivorse
شنبه 06 مهر 1387, 19:46 عصر
توی قسمت نمونه برنامه ها یه برنامه هست که از طریق DataGrid بانک رو Update میکنه. به دردتون میخوره.

kh1387
یک شنبه 07 مهر 1387, 00:28 صبح
مرسی از دوستان که پاسخ دادند.
اما مسئله من:
اولا: باید Grid View در حالتی باشه که کاربر فقط و فقط بتونه به ستونهای خاصی دسترسی داشته باشه نه همه ستونها
ثانیا: من تمامی اطلاعات Grid View رو از sql میارم. پس نیاز به کدی دارم که بتونه در آخر همه ستونها یه ستون اضافه کنه و اون ستون نامش ستون اعمال تغییرات باشه.
ثالثا: دستوری جهت ذخیره اطلاعات همان ردیف جهت ذخیره می خوام. مثل همون Insert Into
بازم ممنونم

majid325
یک شنبه 07 مهر 1387, 03:19 صبح
اولا:
ميخواي كاربر ببينه ولي نتونه تغيير بده يا كاربر اصلا نتونه ببينه؟

dataGridView.Rows[ColumnIndex].Visible = true;
dataGridView.Rows[ColumnIndex].ReadOnly = true;
ثانيا:
پيشنهاد ميكنم ستون ها رو در حالت ديزاين طراحي كني ، ويه ستون هم اضافه كني بهش(البته تو كد نويسي هم ميتوني بهش ستون اضافه كني )

dataGridView.Columns.Add
ثالثا:
بستگي به سناريوت داره ، يعني كاربر ممكنه تيك چند تا ركورد رو بزنه و در آخر اون چند تا ركورد رو update كنه يا نه ميخواي بعد از زدن هر تيك عمل update انجام بشه؟
كه در هر صورت ميتوني كد update ديتاگريد رو بعد از عمل مورد نظزت بنويسي.
حالا در مورد اين آخري مشكلت بازم مجهوله! يعني عمل update ديتا گريد رو مشكل داري يا تشخيص row ي كه تيكش خورده؟
درمورد عمل update كه بايد در مورد CommandBuilder سرچ كني و در مورد تشخيص هم بايد در رويدادdataGridView_CellValidating با استفاد از e.ColumnIndex و e.RowIndex و e.FormattedValue تشخيص بدي؟ هر كدوم از اينها كليد وا‍‍‍ژه هاي شما براي سرچ هست.
موفق باشي.