PDA

View Full Version : delete from datagrid



shervin110us
دوشنبه 17 دی 1386, 21:14 عصر
سلام من این سوالی را که دارم خیلی جستجو کردم . نبود در سایت مشابهش و اگر هم بود کسی جواب صریح نداده بود.

1)ببینید من یک دیتاگرید ویو دارم و از طریق بایندینگ اطلاعات یک بانک را بهش وارد کردم . حالا میخوام اگر کاربر یک ردیف خاص را از دیتا گرید ویو پاک کرد ، این تغییرات علاوه بر اعمال شدن در دیتاگرید ویو ، در بانک اصلی نرم افزار هم اعمال بشه... لطفا در نظر داشته باشید که من نمیدونم انتخاب یک ردیف را چطوری در نظر بگیرم برای پاک کردن رکورد خاص!

GGRRSS_2
سه شنبه 18 دی 1386, 10:18 صبح
سلام
ابتدا شما یک ردیف را انتخاب میکنید یکی از سلهای آن را بخوانید و از بانک حذف کنید و دیت
PrivateSub DataGridView1_CellClick(ByVal sender AsObject, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
If IsNumeric(Me.DataGridView1.CurrentRow.Cells.Item(0 ).Value) = TrueThen
IfMe.DataGridView1.CurrentRow.Cells.Item(0).Value > 0 Then
Me.TextBox1.Text = Me.DataGridView1.CurrentRow.Cells.Item(0).Value
Me.TextBox2.Text = Me.DataGridView1.CurrentRow.Cells.Item(1).Value
Me.TextBox2.Focus()
EndIf
EndIf
EndSub
اگرید را دوباره بایندینگ کنید

arsalansalar
سه شنبه 18 دی 1386, 10:40 صبح
به این یک نگاه بنداز شاید کارت را بیافتد.

http://barnamenevis.org/forum/showthread.php?t=89726

maryam_vb
سه شنبه 18 دی 1386, 10:43 صبح
شما باید فیلدی غیر تکراری مثل autonumber برای جدولت داشته باشی .
در این مثال فیلد number از نوع autonumber میباشد.
این کد رو در رویداد کلیک دیتا گرید بنویس:

Dim dr As DataRow
dr = dst.Tables(0).Rows.Item(dgv.CurrentRow.Index)
i = dr.Item("number")

i حاوی فیلد غیر تکراری سطر انتخاب شده است.
کد حذف:


Dim cmddel AsNew OleDb.OleDbCommand
Dim ds1 AsNew DataSet
Dim strdel = "delete from mytebel where number= " + CStr(i)
conn.Open()
cmddel.CommandType = CommandType.Text
cmddel.CommandText = strdel
cmddel.Connection = conn
گرفتن تایید برای حذف
cmddel.ExecuteNonQuery()
conn.close

حالا دیتا گرید رو به بانکت مرتبط کن . اگه برای بار اول از طریق dataset دیتا گرید رو بایند کردی در اینجا دوباره همون کد رو بنویس.