PDA

View Full Version : اصلاح رکورد انتخاب شده در دیتا گرید



darksunrise
جمعه 18 اردیبهشت 1388, 23:21 عصر
با عرض سلام
من یه گرید دارم که مطابق معمول اطلاعاتش رو از یک پایگاه داده میگیره حالا میخوام وقتی یک رکورد به صورت انتخاب شده هست یعنی های لایت هست اطلاعات موجود توی اون رکورد از طریق چند تا تکست باکس ویرایش بشه از دوستان اگه کسی میتونه در زمینه کد این برنامه به من کمک کنه ممنون میشم

hojjat_gh
شنبه 19 اردیبهشت 1388, 00:18 صبح
با سلام
کد ریختن سطر گرید در تکس باکس:


textbox1.text=datagridview1.rows[e.rowindex].cells[0].value.tostring();
textbox2.text=datagridview1.rows[e.rowindex].cells[1].value.tostring();
.
.


ویکی از ستونهای گریدت هم که باید فیلد منحصر به فرد باشه (مثلا id) که میتونی تکس باکسها رو از طریق اون فیلد تو جدولت ویرایش کنی

darksunrise
شنبه 19 اردیبهشت 1388, 00:28 صبح
با تشکر از راهنمایی تون اما فکر کنم سو تفاهم شد من عکس این قضیه رو میخوام یعنی میخوام از طریق تکست باکس اون ردیفی از گرید که انتخاب شده توی دیتا بیس اصلاح کنم

seven7777777
شنبه 19 اردیبهشت 1388, 00:37 صبح
ویکی از ستونهای گریدت هم که باید فیلد منحصر به فرد باشه (مثلا id) که میتونی تکس باکسها رو از طریق اون فیلد تو جدولت ویرایش کنی
فکر می کنم این دوستمون جواب شماروکامل دادن و سوتفاهمی در کار نبوده .
فقط اگر ویرایش با موفقیت انجام شد ، همونجا ردیف مورد نظر رو د گریدت با مقادیر تکست باکس ها پر کن و دوباره مقادیر جدید رو از دیتابیس واکشی نکن . { البته اینو احتمالا خودتم می دونستی }

asefy2008
شنبه 19 اردیبهشت 1388, 00:45 صبح
سلام شما با همون کدی که دوستمون لطف کردن و قرار دادن می تونید این کار رو انجام بدید به این ترتیب که اول اطلاعات رو داخل تکست باکس قرار می دید و بعد کاربر اون رو اصلاح می کنه و شما محتویات اون تکست باکس رو با استفاده از همون کد در داخل سلول مورد نظر قرار می دید .اما باید حواستون به کلید باشه.
پیروز باشید.

kiarayan
پنج شنبه 18 تیر 1388, 01:49 صبح
من سوال دارم ؟
1- ببیند بنده روی یک سطر دیتا گرید کلیک می کنم سپس با یک باتن ویرایش می کنم چه چیزی باید بنویسیم که تو فرم جدید تو تکس باکس ها اطلاعات رو بیاره تا من ویرایش کنم ؟
2- چه تداخلی ممکنه بین دیتا ست و دیتا بیس اتفاق بیفته که قاط بزنه ؟ راه جلو گیری چیست ؟

قبلا از شما سپاسگذارم

Yasersadegh
پنج شنبه 18 تیر 1388, 20:07 عصر
سلام دوستان


1- ببیند بنده روی یک سطر دیتا گرید کلیک می کنم سپس با یک باتن ویرایش می کنم چه چیزی باید بنویسیم که تو فرم جدید تو تکس باکس ها اطلاعات رو بیاره تا من ویرایش کنم ؟
2- چه تداخلی ممکنه بین دیتا ست و دیتا بیس اتفاق بیفته که قاط بزنه ؟ راه جلو گیری چیست ؟
ببينيد دوست عزيز با همون كدي كه دوستمون hojjat_gh در پست دوم نوشتن مي تونيد اطلاعات مربوط به سطر انتخاب شده رو به تكت باكس هاتون منتقل كنيد!! بعد از اينكه كاربر اطلاعات رو ويرايش كرد (فقط حواستون باشه كه نبايد كاربر فيلد كليد رو ويرايش كنه، يعني نبايد بهش اجازه ويرايش فيلد كليد رو بديد!:لبخند:) و دكمه ذخيره رو زد بايد اطلاعات تكست باكس ها رو در بانكتون Update كنيد كه اين كار بايه كوئري ساده قابل انجام است!! در آخر هم اطلاعات رو از ديتابيس خوانده و در ديتاگريد نمايش مي دهيد!:لبخندساده:(همون كاري كه در هنگام لود شدن فرمتون انجام داديد!!:لبخند:)
** اگه نكته مربوط به فيلد كليدي رو درست انجام بديد هيچ مشكلي به وجود نخواهد امد!:لبخندساده:

اميدوارم توضيحات مفيد واقع بشه!!
موفق باشيد:چشمک:

Mafia_ir
شنبه 07 آبان 1390, 01:43 صبح
ببخشيد اين كد تو ويژوال اسديو 2010 من خطا گرفته ميشه :

e.rowindex

من چجوري ميتونم شماره رديف انتخواب شده رو بفهمم و از ستون مثلا 5 اطلاعاتي رو بردارم ؟

asadegha
شنبه 07 آبان 1390, 02:59 صبح
ببخشيد اين كد تو ويژوال اسديو 2010 من خطا گرفته ميشه :

e.rowindex

من چجوري ميتونم شماره رديف انتخواب شده رو بفهمم و از ستون مثلا 5 اطلاعاتي رو بردارم ؟

شما میتونید از dgv.CurrentRow.Cells[index].Value برای رکورد انتخاب شده استفاده کنین.
index مشخص کننده شماره ستونی هست که می خواین از ردیف انتخاب شدتون بهش دسترسی داشته باشین.
××× یادتون باشه که شماره خونه ها از صفر شروع میشه ×××

Mafia_ir
شنبه 07 آبان 1390, 15:27 عصر
از اين خط كد ايراد ميگيره :

dgv.CurrentRow.Cells[index].Value

من اينو اينجوري نوشتم :

object obj = DGVHistory.CurrentRow.Cells[index: 0].Value;

بعد اين شماره رديف مورد نظر رو به من نميده محتواي داخل رديف رو برميگردونه . با اين امتحان كردم محتواي رديف رو برگردوند
MessegeBox.Show(obj.YTostring());

پس مشكل كجاست ؟

asadegha
چهارشنبه 11 آبان 1390, 01:46 صبح
شماره ردیفو می خوای چیکار.
بجای index باید عدد بزاری. اگه بزاری 0 خونه اول، 1 خونه دوم و ...

شماره ردیف این طوری بدست میاد:

dataGridView1.Rows.IndexOf(dataGridView1.CurrentRo w)