PDA

View Full Version : حذف با استفاده از datagridview



mohsenaminzare
جمعه 18 مرداد 1387, 17:34 عصر
باسلام به همه ی دوستان
من با استفاده از یک store procedure می خوام سطرهایی از datagridview که انتخاب شده است رو حذف کنم . sp رو طراحی کردم در .net هم کدش رو نوشتم . اگر در زمان اجرا یک سطر رو انتخاب کنم حذف می کنه ولی در صورت انتخاب چند سطر error می ده . در ضمن برای اجرای sp از executenonequery استفاده کردم . اشکال کجاست ؟ با تشکر
:قلب::قلب:

ALI TT
شنبه 19 مرداد 1387, 11:58 صبح
دقیقا می خوای چه کار کنی ؟ می خوای ردیف ها رو حذف کنی ؟

mohsenaminzare
شنبه 19 مرداد 1387, 21:54 عصر
می خوام سطرهای انتخاب شده رو پاک کنم تغییرات هم در دیتابیس ذخیره شه

ALI TT
یک شنبه 20 مرداد 1387, 13:03 عصر
DataGridView1.Rows.RemoveAt(DataGridView1.Selected Rows.Item(0).Index)

برای حذف چند رکورد می تونی با کد بالا و یه حلقه ، کار رو تموم کنی . کد حلقشو بگم ، اگه بلد نیستی بگم .

برای ذخیره مقادیر دیتا گرید : اول باید دیتا سورس رو دیتا ست انتخاب کرده باشی و با کد زیر دیتا ست رو ذخیره کنی :


OleDbDataAdapter1.Update(DataSet1)

اشکال ، کمک ، هر چی ، ما در خدمتیم

mohsenaminzare
یک شنبه 20 مرداد 1387, 23:04 عصر
از شما ممنونم ولی من که کامل توضیح دادم می خوام چه کار کنم . کد و نمونه عکس برنامه رو گذاشتم شاید اینجوری بهتر بتونید کمک کنید. با تشکر


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim con As New SqlConnection("Data Source=MOHSEN-NZSMFK41;Initial Catalog=hls;Integrated Security=True")

If DataGridView1.Rows.Count <> 0 Then
con.Open()
If Me.DataGridView1.SelectedRows.Count <> 0 Then
data_c = data_c - Me.DataGridView1.SelectedRows.Count
For Each Tmp As DataGridViewRow In Me.DataGridView1.SelectedRows
Me.DataGridView1.Rows.Remove(Tmp)
Dim command As SqlCommand = New SqlCommand("del_book", con)
command.CommandType = CommandType.StoredProcedure
command.Parameters.AddWithValue("@id", Tmp.Index)
command.ExecuteNonQuery()

Next

Else
MsgBox("هيچ کتابي انتخاب نشده است")
End If

Else
MsgBox("هيچ کتابي در کتابخانه وجود ندارد")
End If
Me.SelectTableAdapter.Fill(Me.HlsDataSet1._select, libarary)
con.Close()
End Sub

اینم از sp در sql server

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


ALTER PROCEDURE [dbo].[del_book]
@id as nchar(10)

AS
BEGIN

SET NOCOUNT ON;
DELETE FROM book_properties
where id = @id

END

ALI TT
یک شنبه 20 مرداد 1387, 23:59 عصر
SET NOCOUNT ON;
DELETE FROM book_properties
where id = @id

END

شما از چه دیتابیسی استفاده می کنید ؟

mohsenaminzare
پنج شنبه 24 مرداد 1387, 22:44 عصر
از sql server 2005 ، مشکل از کد وی بی .

کیسی نیست که کمک کنه !

VB.NET2005
پنج شنبه 24 مرداد 1387, 23:20 عصر
دوست عزیز : ALI TT

میشه یه نمونه سورس بــزاریــن ؟ ؟ ؟

mohsenaminzare
جمعه 25 مرداد 1387, 12:22 عصر
سلام
دوست خوبم در بالا (تاپیک 5 ) نمونه کد رو گذاشتم.

mohsenaminzare
یک شنبه 27 مرداد 1387, 12:55 عصر
دوستان برنامه نویس کمک کنید.

masoodp666
دوشنبه 28 مرداد 1387, 08:58 صبح
شما برای اینکه هر چند سطر رو که میخواهید حذف کنید در Grid همون روشی که دوستان گفتند درست است ولی برای حذف در دیتابیس باید از همون روش دوستمون ALI TT استفاده کنید. به عوض اینکه برای هر رکورد یه کانکشن به دیتابیس بزنید و .... از دیتاست و آداپتور استفاده کنید.
دیتاست رو به جدولتون ارتباط بدید و گریدتون رو به دیتاست.
هر تعداد سطر که میخوهید رو با دستور

DataGridView1.Rows.RemoveAt(DataGridView1.Selected Rows.Item(0).Index)
حذف کنید. و در نهایت کل دیتاست رو با آداپتور، Update کنید.

به همین راحتی !