سلام به همه دوستان عزیز
دوستان برای حذف کردن یک رکورد از DataGrid باید چکار کرد؟فرض کنید یک Grid دارای 10 رکورد هست و ما میخوایم رکورد 5 رو حذف کنیم.
اگر کسی میدونه همین کار رو چطور باید رو ی Data Table انجام بده. ممنون میشم بگه
شاد باشید.
سلام به همه دوستان عزیز
دوستان برای حذف کردن یک رکورد از DataGrid باید چکار کرد؟فرض کنید یک Grid دارای 10 رکورد هست و ما میخوایم رکورد 5 رو حذف کنیم.
اگر کسی میدونه همین کار رو چطور باید رو ی Data Table انجام بده. ممنون میشم بگه
شاد باشید.
راه های مختلفی دارد
1. شما می توان یه textbox بگذارید و از کاربر بخواهید id یا شماره آن رکورد را وارد کند وشما با دستور delete آن رکورد راحذف میکنید
2. می توانید شماره رکورد جاری datagrid را بگیرد ( رکوردی که کاربر آن را انتخاب کرد) و بعد از دستور delete استفاده کنید
سلام دوستان عزیز مشکل حذف ردیف از Grid حل شد. کدشو پیدا کردم
اگر میشه بگید چطوری باید رکورد رو از Datatable حذف کنم.بدون استفاده از دستورات sql منظورم هست
سلام ميشه كدشو بزاريد تا ما هم استفاده كنيم .آخه منم اين كد رو لازم دارم .با تشكر
[datatable_name].Rows(5).Delete()
سلام msh_gold جان.
اینم کد حذف از دیتاگرید:
GridView1.Rows.RemoveAt(شماره ایندکس رکورد مورد نظر)
خوش باشی عسلم.
مرسی mehrnoosh_al62 جان.
mehrnoosh_al62 جان اگر لیستی از ایندکس ها رو داشته باشیم که بخوایم از DataTable حذف کنیم ، آیا راه بهتر ی نیست که بشه باهاش این کار رو انجام داد.
یعنی راهی که مثلا 10 تا ایندکس رو به صورت یه لیست یا یه ارایه بهش بدیم و اون همشون رو حذف کنه؟
میتونی از یه حلقه for استفاده کنی...
For k As Integer = 0 To [تعدادایندکس ها برای حذف]
tbl2.Rows(arr(k)).Delete()
Next
با سلام
من دقیقا این کد رو برای حذف ردیف استفاده کرده ام در حالت معمولی کار میکنه.
اما وقتی data grid رو بازیابی(refresh)میکنم یا این که در اون جستجو میکنم. دیگه فقط از خود data grid پاک یکنه و از table اصلی من پاک نمیکنه و در دفعات بعد که وارد برنامه میشم. اون ردیف پاک نشده.
Try
SelectCase MsgBox("are you sure???", MsgBoxStyle.YesNo, "g???")
Case MsgBoxResult.Yes
BankDataGridView.Rows.RemoveAt(BankDataGridView.Se lectedRows.Item(0).Index)
BankTableAdapter.Update(ShohadaDataSet)
Case MsgBoxResult.No
Me.Show()
EndSelect
Catch
MsgBox("delet sucssefull", MsgBoxStyle.OkOnly, "g???")
EndTry
کسی میتونه کمکم کنه خیلی فوری است.؟
خوب عزیز دلم مشخصه چون شما عمل حذف سطر رو روی دیتاگرید انجام میدید نه روی جدول و برای همین اطلاعات داخل جدول تغییر نمیکنه.
میتونید هر چی رو که از گرید حذف کردید رو از جدول هم حذف کنید .عمل حذف از جدول هم که در بالا دوستان گفتن.شاد باشی نازم
دوست عزیز ابتدا باید دیتاگراید رو به جدول بایند کنید سپس عمل حذف رو انجام بدید
کد زیر تمام اعمال روی یک دیتاگراید ویو به شما نشون میدهImports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports System.Data.OleDb
Public Class Form1
Private dataTable1 As New DataTable()
Private oleDbConnection1 As New OleDbConnection()
Private oleDbDataAdapter1 As New OleDbDataAdapter()
Private Sub Action()
Me.oleDbConnection1.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = |DataDirectory|\db.mdb; Persist Security Info = True"
Me.oleDbDataAdapter1.SelectCommand = New OleDbCommand("SELECT ID, Field1, Field2 FROM Table1", Me.oleDbConnection1)
Me.oleDbDataAdapter1.Fill(Me.dataTable1)
Me.dataGridView1.DataSource = dataTable1
'Initialize UPDATE Command.
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.oleDbDataAdapter1.UpdateCommand = New OleDbCommand("UPDATE Table1 SET Field1 = @field1, Field2 = @field2 WHERE ID = @id", Me.oleDbConnection1)
Me.oleDbDataAdapter1.UpdateCommand.Parameters.AddW ithValue("@field1", GetType(String)).SourceColumn = "Field1"
Me.oleDbDataAdapter1.UpdateCommand.Parameters.AddW ithValue("@field2", GetType(String)).SourceColumn = "Field2"
Me.oleDbDataAdapter1.UpdateCommand.Parameters.AddW ithValue("@id", GetType(Integer)).SourceColumn = "ID"
'Initialize INSERT Command.
Me.oleDbDataAdapter1.InsertCommand = New OleDbCommand("INSERT INTO Table1 (Field1, Field2) VALUES (@field1, @field2)", Me.oleDbConnection1)
Me.oleDbDataAdapter1.InsertCommand.Parameters.AddW ithValue("@field1", GetType(String)).SourceColumn = "Field1"
Me.oleDbDataAdapter1.InsertCommand.Parameters.AddW ithValue("@field2", GetType(String)).SourceColumn = "Field2"
'Initialize DELETE Command.
Me.oleDbDataAdapter1.DeleteCommand = New OleDbCommand("DELETE FROM Table1 WHERE ID = @id", Me.oleDbConnection1)
Me.oleDbDataAdapter1.DeleteCommand.Parameters.AddW ithValue("@id", GetType(Integer)).SourceColumn = "ID"
Me.oleDbDataAdapter1.Update(dataTable1)
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Action()
End Sub
End Class
خوب چرا وقتی در حالت معمولی است. یعنی من هیچ refresh یا جستجویی روی datagrid انجام نمیدم درست عمل میکنه و از tableهم پاک میکنه؟
بعد من خیلی وارد نیستم همه ی کد هایی رو که دوستمون ali _md 110 قرار داده است رو باید من هم در برنامه ام قرار بدم.؟
اگه کمکم کنید ممنونم.
برادر جان کدهای زیر سه عمل اصلی درج حذف و ویرایش رو انجام میده هر کدومش لازم نداری از برنامه حذف کن در ضمن دیتاگراید زمانیکه بوسیله رکوردهای دیتاست پر شده میتونه عملیات حذف بالا رو انجام بده
کدهایی که جهت حذف نیازتون هست
Imports System.Data.OleDb
Public Class Form1
Private dataTable1 As New DataTable()
Private oleDbConnection1 As New OleDbConnection()
Private oleDbDataAdapter1 As New OleDbDataAdapter()
Private Sub Action()
Me.oleDbConnection1.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = |DataDirectory|\db.mdb; Persist Security Info = True"
Me.oleDbDataAdapter1.SelectCommand = New OleDbCommand("SELECT ID, Field1, Field2 FROM Table1", Me.oleDbConnection1)
Me.oleDbDataAdapter1.Fill(Me.dataTable1)
Me.dataGridView1.DataSource = dataTable1
End Sub
Me.oleDbDataAdapter1.DeleteCommand = New OleDbCommand("DELETE FROM Table1 WHERE ID = @id", Me.oleDbConnection1)
Me.oleDbDataAdapter1.DeleteCommand.Parameters.AddW ithValue("@id", GetType(Integer)).SourceColumn = "ID"
Me.oleDbDataAdapter1.Update(dataTable1)
روال Action رو هم توی فرم لود صدا بزن جهت بایند شدن دیتاگرایدویو
سلام.
دوست عزیز من دیتابیس ام sql هستش.
اینکارها رو کردم ولی برا حذف رکورد از دیتابیس این کار نمی کنه !
چیکار کنم ؟
قسمت imports برنامه رو به Imports System.Data.SqlClient تغییر بدید ونوع اداپتور- کوماندها- کانکشنها رو به نوع اسکیول تغییر بدید
مثلا از Private oleDbDataAdapter1 As New OleDbDataAdapter() به Dim sqlAdapter1 As SqlDataAdapter تغییر دهید