PDA

View Full Version : حذف و ویرایش رکورد از دیتا گرید



نسرین2000
چهارشنبه 04 دی 1392, 07:54 صبح
<
ကျွန်ုပ်ဇော်ဂျီဖ င့်ယူနီကုတ်ဖြင့် ော်ဂျီကီးဘုတ်ဖြင ့် ယူနီကုတ် ရေးမည်။
سلام
چند تا تکسباکس دارم که با زدن یک button اطلاعات تکس باکس ها توی دیتاگرید ویو نمایش داده میشه ( ولی ثبت نمیشه ) حالا اگه بخوام با یک دکمه دیگه یک یا چند سطر از این رکوردها رو حذف کنم و ویا ویرایش کنم ( قبل از ثبت در بانک ) باید چیکار کنم ؟ ( کد delete و کد update)

sagggad
چهارشنبه 04 دی 1392, 07:57 صبح
سلام.
تا وقتی که در بانک ثبت نشده باشه که کد خاصی برای ویرایش لازم نیست!
لطفا بیشتر توضیح بدید راجع به منظورتون!

boveiryghasem
چهارشنبه 04 دی 1392, 08:10 صبح
سلام

قبل از ثبت در دیتابیس برای ویرایش دیتاگرید میتونی روی اول سل دابل کلیک کنی مقدارش رو تغییر بدی و برای حذف هر سطری که دوست داشته باشید میتونید اون سطر رو انتخاب کنید و دکمه Delete روی صفحه کلید رو بزنید.

نسرین2000
چهارشنبه 04 دی 1392, 09:06 صبح
در مورد ویرایش درسته ولی برای حذف کردن اصلا اطلاعات اون سطر حذف نمیشن

boveiryghasem
چهارشنبه 04 دی 1392, 13:08 عصر
واسه اینکه سطر رو کامل Delete کنی با اینجایی رو که توی تصویر نشون دادم با Mouse کلیک کنی بعد دکمه Delete رو بزنی:
114397
اگر هم میخای سطر پاک نشه و فقط اطلاعات سطر(فقط اطلاعات سلول ها) رو پاک کنی اول سطر رو همون طور که توی تصویر هست کلیک کن بعد میتونی از کد زیر واسه یک Button یا هر چیزی که دوست داری استفاده کنی و اطلاعات رو پاک کنی امیدوارم منظورت یکی از این دو بوده باشه اینم کدش:

For Each selectedrow As DataGridViewRow In DataGridView1.SelectedRows
DataGridView1.Rows.Remove(selectedrow)
Next

نسرین2000
شنبه 07 دی 1392, 09:32 صبح
Rows cannot be programmatically removed unless the DataGridView is data-bound to an IBindingList that supports change notification and allows deletion.
سلام
آقا قاسم من هم به همین صورتی که گفتید سعی می کنم سطر رو حذف کنم ولی نمیشه
با کدی هم که در بالا گفتید ارور می ده ، همین اروری که در بالا گفتم .
من فکر می کنم که یکی از properties های مربوط به دیتا گریدم رو باید تغییر بدم ولی نمی دونم کدوم البته بگم خاصیت های allow user to delete rowsهم true زدم.
لطفا کمک کنید

sagggad
شنبه 07 دی 1392, 10:01 صبح
سلام
طبق عکس زیر شما با این کد میتوانید یک ردیف را انتخاب کرده و سپس آن را حذف کنید:
114525
کد:

For i = 0 To DataGridView1.Rows.Count - 2
If DataGridView1.Rows(i).Selected Then
DataGridView1.Rows.RemoveAt(i)
End If
Next
موفق باشید:لبخندساده:

boveiryghasem
شنبه 07 دی 1392, 10:52 صبح
Rows cannot be programmatically removed unless the DataGridView is data-bound to an IBindingList that supports change notification and allows deletion.
سلام
آقا قاسم من هم به همین صورتی که گفتید سعی می کنم سطر رو حذف کنم ولی نمیشه
با کدی هم که در بالا گفتید ارور می ده ، همین اروری که در بالا گفتم .
من فکر می کنم که یکی از properties های مربوط به دیتا گریدم رو باید تغییر بدم ولی نمی دونم کدوم البته بگم خاصیت های allow user to delete rowsهم true زدم.
لطفا کمک کنید

شما یه پروژه جدید بساز اینایی رو که گفتم انجام بده اگر نشد بگو یه فکر دیگه کنیم.

نسرین2000
شنبه 07 دی 1392, 11:31 صبح
من دیتا گریدم را با تعریف کلاس همراه و توسط یک آرایه پر کردم ممکنه مشکل از اینجا باشه ؟

Dim hamrah As New hamrah
Try
Do While txtfirst_nameh.Text = ""
If MessageBox.Show(" لطفا نام همراه را وارد کنید") = Windows.Forms.DialogResult.OK Then
txtfirst_nameh.Focus()
GoTo line1
End If
Loop
Do While txtlast_nameh.Text = ""
If MessageBox.Show(" لطفا نام خانوادگی همراه را وارد کنید") = Windows.Forms.DialogResult.OK Then
txtlast_nameh.Focus()
GoTo line1
End If
Loop
Catch sqlexceptionerr As SqlException
MessageBox.Show(sqlexceptionerr.Message)
End Try
With hamrah
.first_name = txtfirst_nameh.Text
.last_name = txtlast_nameh.Text
.nesbat = txtnesbat.Text
End With
hamrahlist.Add(hamrah)
grdhamrah.DataSource = Nothing
grdhamrah.DataSource = hamrahlist
txtfirst_nameh.Text = ""
txtlast_nameh.Text = ""
txtnesbat.Text = ""
line1: objconnection.Close()

sagggad
شنبه 07 دی 1392, 12:40 عصر
با استفاده از کد من هم همین ارور رو داد؟؟

نسرین2000
یک شنبه 08 دی 1392, 10:53 صبح
آقا سجاد میشه لطف کنید یه نگاه به برنامه بندازید و مشکلم رو حل کنید ؟

sagggad
یک شنبه 08 دی 1392, 11:38 صبح
چشم فقط شما برنامه رو بذارین!

نسرین2000
یک شنبه 08 دی 1392, 12:25 عصر
این هم سورس برنامه
114569

نسرین2000
دوشنبه 09 دی 1392, 07:42 صبح
آقا سجاد چی شد ؟

نسرین2000
دوشنبه 09 دی 1392, 08:58 صبح
کسی می تونه کمک کنه ؟

sagggad
دوشنبه 09 دی 1392, 09:02 صبح
ببخشید من الان دسترسی به وی بی ندرام تا 1 ساعت دیگه جواب میدم انشاالله..

sagggad
دوشنبه 09 دی 1392, 15:07 عصر
بفرما ببین منظورت اینه؟؟:
اول باید طبق اون عکسی که دادم اون سطر رو در حالت انتخاب قراربدی و بعد وقتی روی دکمه حذف سطر دیتا گرید ویو کلیک کنی محتویات اون سطر برابر "" میشه.یعنی خالی میشه.!
لینک دانلود:114609
موفق باشی:لبخندساده:

behrooz69
سه شنبه 10 دی 1392, 04:14 صبح
سلام نسرین خانم . هدفم کمکه فقط از سوال و طرز جوابم ناراحت نشید لطفا ( انتقاد پذیر باشید )

اولا اگه قراره این نرم افزار رو فقط واسه یادگیری استفاده کنی و واسه خودت و سرسرکی که مهم نیست .

ولی اگه قراره به کسی بدی یا پروژه دانشگاهته اینچیزاش اصلا مناسب نیست :

1 ) نحوه کد نویسیش ( نمیگم غلطه ها ) راه قانونیش و مناسبش نیست .

2 ) گرافیک برنامت افتضاست.

3 ) Startup فرم Main خودتو بزار رو Maximize که موقع اجرا به حالت بزرگ و فول سایز اجرا شه . شما اومدی با دست اندازشو دست کاری کردی و مانیتور شما Lcd هستش و عرض و طولش با مانیتور های دیگه فرق داره

4 ) دیتاگرید ویو گذاشتی درست ؟ واسه نمایش خوبه ولی نیاز نیست تو همون صفحه بهت نشون بده این از قانون به دوره . حالا گذاشتی اوکی نشون دادی اوکی ولی دوست من وقتی قراره کاربر بیاد خودش دستی وارد کنه ، خودشم دستی پاک کنه ، یعنی عملا یه کار رو کردی 4 کار: ورود ، چک ، انتخاب سطر ، حذف سطر .
نرم افزار کارش افزایش سرعته کاره نه بازی با اعصاب :گریه: خو حالا این چه کاریه کاربر اومده اطلاعات رو وارد کرده وقتی اینتر زد یا دکمه ثبت رو زد بیا 1 اررور تعریف کن با vbYes و vbNo که اگه Yes رو زد بیاد اطلاعات ثبت شه و اگه No رو زد ثبت نشه . این از روش صحیح .

حالا روش خودت ، دوست من واسه حذف نیاز به کد نیست . شما دیتاگرید ویو رو گذاشتی این 4 تا تیک رو فعال کن اجازه اضافه کردن ، حذف کردن ، مرتب کردن ، و ویرایش کردن رو داری . دیگه نیاز به کد نیست . ولی بازم کاربر باید رو سطر کلیک کنه و Delete رو بزنه تا پاک شه و اینم کار اضافست .

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

5 ) فرم لوگین اولین صفحه نرم افزاره و وقتی از داخل برنامه توش میری باید کلا برنامت همه فرماش خارج شن و فقط فرم لاگینت بمونه .

6 ) نرم افزاری که قبلا نوشته شده رو دنبالش نرو ، فقط در صورتی که بخوای بفروشی به مشتریت و پول خوبی بده واسش شخصی سازی کن.

7 ) برنامه ای که میدی ما تست کنیم دیتابیسشم بده :بامزه:

8 ) از کامپاننت ها و تب ها و منو ها و فونت ها و گرافیک کاری مناسب استفاده کن ( فتوشاپ ) زیبایی برنامت اینا مهمه .

9 ) هدر ستون های دیتاگریدویوی خودتو فارسی کن همه زبانشون خوب نیست.

10 ) چرا از آرایه واسه ثبت اطلاعات متغییر استفاده کردی ؟؟؟


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

یا حق

sagggad
سه شنبه 10 دی 1392, 07:52 صبح
سلام نسرین خانم . هدفم کمکه فقط از سوال و طرز جوابم ناراحت نشید لطفا ( انتقاد پذیر باشید )

اولا اگه قراره این نرم افزار رو فقط واسه یادگیری استفاده کنی و واسه خودت و سرسرکی که مهم نیست .

ولی اگه قراره به کسی بدی یا پروژه دانشگاهته اینچیزاش اصلا مناسب نیست :

1 ) نحوه کد نویسیش ( نمیگم غلطه ها ) راه قانونیش و مناسبش نیست .

2 ) گرافیک برنامت افتضاست.

3 ) Startup فرم Main خودتو بزار رو Maximize که موقع اجرا به حالت بزرگ و فول سایز اجرا شه . شما اومدی با دست اندازشو دست کاری کردی و مانیتور شما Lcd هستش و عرض و طولش با مانیتور های دیگه فرق داره

4 ) دیتاگرید ویو گذاشتی درست ؟ واسه نمایش خوبه ولی نیاز نیست تو همون صفحه بهت نشون بده این از قانون به دوره . حالا گذاشتی اوکی نشون دادی اوکی ولی دوست من وقتی قراره کاربر بیاد خودش دستی وارد کنه ، خودشم دستی پاک کنه ، یعنی عملا یه کار رو کردی 4 کار: ورود ، چک ، انتخاب سطر ، حذف سطر .
نرم افزار کارش افزایش سرعته کاره نه بازی با اعصاب :گریه: خو حالا این چه کاریه کاربر اومده اطلاعات رو وارد کرده وقتی اینتر زد یا دکمه ثبت رو زد بیا 1 اررور تعریف کن با vbYes و vbNo که اگه Yes رو زد بیاد اطلاعات ثبت شه و اگه No رو زد ثبت نشه . این از روش صحیح .

حالا روش خودت ، دوست من واسه حذف نیاز به کد نیست . شما دیتاگرید ویو رو گذاشتی این 4 تا تیک رو فعال کن اجازه اضافه کردن ، حذف کردن ، مرتب کردن ، و ویرایش کردن رو داری . دیگه نیاز به کد نیست . ولی بازم کاربر باید رو سطر کلیک کنه و Delete رو بزنه تا پاک شه و اینم کار اضافست .

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

5 ) فرم لوگین اولین صفحه نرم افزاره و وقتی از داخل برنامه توش میری باید کلا برنامت همه فرماش خارج شن و فقط فرم لاگینت بمونه .

6 ) نرم افزاری که قبلا نوشته شده رو دنبالش نرو ، فقط در صورتی که بخوای بفروشی به مشتریت و پول خوبی بده واسش شخصی سازی کن.

7 ) برنامه ای که میدی ما تست کنیم دیتابیسشم بده :بامزه:

8 ) از کامپاننت ها و تب ها و منو ها و فونت ها و گرافیک کاری مناسب استفاده کن ( فتوشاپ ) زیبایی برنامت اینا مهمه .

9 ) هدر ستون های دیتاگریدویوی خودتو فارسی کن همه زبانشون خوب نیست.

10 ) چرا از آرایه واسه ثبت اطلاعات متغییر استفاده کردی ؟؟؟


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

یا حق

منم با بهروز موافقم.البته فکر می کنم منظور نسرین خانم اینه که کاربر هر سطری رو در حالت انتخاب قرار داد و بعد روی دکمه

کلیک کرد اطلاعات داخلش پاک بشه نه خود سطر...درسته؟؟؟اون سورس من هم همین کار رو میکنه...

موفق باشید....:چشمک:

behrooz69
سه شنبه 10 دی 1392, 21:32 عصر
به جای این کار بیاید کمک کنید که وقتی روی یه سطر دیتاگرید ویو کلیک میکنیم توی فرم دیگه اطلاعات اون سطر رو نشون بده واسه ویرایش و حذف و ...

مثل برنامه های حسابداری و ...

somitlb
یک شنبه 24 شهریور 1398, 17:34 عصر
سلام دوستان من میخوام وقتی اطلاعات رو از دیتابیس گرفتم و تو دیتاگریدویو نمایش دادم بتونم یه ستون رو دوباره ویرایش کنم ولی وقتی اطلاعات رو نمایش دادم دیتاگریدویو حالت ویرایش نداره چطور میتونم حالت ویرایششو فعال کنم تو قسمت تنظیمات هم حالت read only رو false کردم و edit رو فعال کردم اما زمان اجرا وقتی رو ستونی که میخوام ویرایشش کنم میزنم حالت ویرایش نمیاد