form - VB.NET: Borrar DataGridView
como limpiar un datagridview en c# (25)
¿No puede enlazar la vista de datos a una colección vacía (en lugar de nula)? Que hacer el truco?
He intentado -
DataGridView1.DataSource=Nothing
y
DataGridView1.DataSource=Nothing
DataGridView1.Refresh()
y
DataGridView1.RefreshEdit()
Ninguno de ellos funciona ...
He escrito un método que establece el DataSource de DataGridView cuando se ejecuta. pero cada vez que lo ejecuto, replica los datos con un nuevo valor y los agrega al contenido anterior de la DGV. Quiero borrar el contenido y luego agregar los valores. ¿Es eso posible?
1) Crear un botón que se llame Clear.Inside insertar el siguiente código datagridviewer.DataSource = nada
2) En su botón de búsqueda comience su código con la siguiente declaración
datagridviewer.DataSource = DataSet.table
Nb: en lugar de tabla, ponga el nombre real de su tabla ej: datagridviewer.DataSource = DataSet.client
Cuando ingrese información de una consulta SQL en una vista de datos, puede borrar la vista de datos antes de volver a cargarla.
Donde he definido dbDataSet como New DataTable puedo hacer un claro. dbDataSet debe estar al comienzo del formulario dentro del formulario de clase pública
Dim dbDataset AS New DataTable
Dentro del código de tu Sub Privado, coloca
dbDataSet.Clear()
Debería eliminar la tabla del conjunto de datos si el datagrid está enlazado a algún datatable. Su Gridview se borrará automáticamente. Ninguna otra manera.
[YourDatasetName].Tables.Clear()
El error que está cometiendo es que parece estar usando un objeto de conjunto de datos para almacenar sus datos. Cada vez que usa el siguiente código para poner datos en su conjunto de datos, agregue datos a los datos que ya están en su conjunto de datos.
myDataAdapter.Fill(myDataSet)
Si asigna la tabla en su conjunto de datos a un objeto DataGridView en su programa mediante el siguiente código, obtendrá resultados duplicados porque no ha borrado los datos que ya residen en su conjunto de datos y en su tabla de conjuntos de datos.
myDataGridView.DataSource = myDataSet.Tables(0)
Para evitar replicar los datos, debe llamar al método clear en su objeto de conjunto de datos.
myDataSet.clear()
Luego, asigne la tabla en su conjunto de datos a su objeto DataGridView. El código es así.
myDataSet.clear()
myDataAdapter.Fill(myDataSet)
myDataGridView.DataSource = myDataSet.Tables(0)
Puedes probar este código:
'' clear previous data
DataGridView2.DataSource = Nothing
DataGridView2.DataMember = Nothing
DataGridView2.Refresh()
Try
connection.Open()
adapter1 = New SqlDataAdapter(sql, connection)
'' clear data already in the dataset
ds1.Clear()
adapter1.Fill(ds1)
DataGridView2.DataSource = ds1.Tables(0)
connection.Close()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
Encontré que establecer el origen de datos en nulo elimina las columnas. Esto es lo que funciona para mí:
do#:
((DataTable)myDataGrid.DataSource).Rows.Clear();
VB:
Call CType(myDataGrid.DataSource, DataTable).Rows.Clear()
Mi DataGridView también está vinculado a un DataSource y myDataGridView.Columns.Clear()
funcionó bien, pero myDataGridView.Rows.Clear()
no lo hizo. Sólo un FYI para aquellos que han intentado .Rows
.
No haga nada en DataGridView
, solo borre la fuente de datos. Intenté borrar el método myDataset.clear()
, luego funcionó.
Para borrar los datos de la vista de cuadrícula, debe borrar el conjunto de datos o la tabla de datos
Utilizo este código. Borro los datos de la vista de cuadrícula, incluso si vuelvo a enviarlos una y otra vez, funcionará. <> 1) Luego, con.Open () Fin Si dt.Clear () ''Para borrar datos Cada vez para actualizar datos cmd.Connection = con cmd.CommandText = "seleccionar * de los usuarios" da.SelectCommand = cmd da.Fill ( dt) DataGridView1.DataSource = dt DataGridView1.Visible = True
cmd.Dispose()
con.Close()
Para eliminar el registro anterior en datagridview cuando esté buscando un nuevo resultado, con el evento button_click escriba el siguiente código,
me.DataGridview1.DataSource.clear ()
este código ayudará a eliminar el registro anterior en datagridview.
Para los casos no consolidados, tenga en cuenta que:
DataGridView.Rows.Clear()
Deja la colección de columnas en su lugar.
DataGridView.Columns.Clear()
... quitará todas las columnas y filas. Si está utilizando el DGV sin unir, y en el próximo uso, el cambio de columnas, borrar las filas puede no ser adecuado. Para el código de la biblioteca, borre todas las columnas antes de agregar columnas.
Probablemente usaría esto ...
DataGridView1.Rows.Clear()
para borrar las filas y luego volver a enlazar.
Puede tener un escenario de usuario tal que desee mantener el enlace de datos y borrar solo temporalmente el DataGridView. Por ejemplo, tiene el usuario haciendo clic en una instalación en un mapa para mostrar sus atributos para editar. Está haciendo clic por primera vez, o ya ha hecho clic en uno y lo ha editado. Cuando el usuario haga clic en el botón "Seleccionar instalación", le gustaría borrar el DataGridView de los datos de la instalación anterior (y no lanzar un error si es su primera selección). En este escenario, puede lograr la limpia DataGridView adaptando el código generado que llena la DataGridView. Supongamos que el código generado tiene este aspecto:
Try
Me.Fh_maintTableAdapter.FillByHydrantNumber(Me.Fh2010DataSet.fh_maint, hydrantNum)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
Estamos llenando el DataGridView basado en el número de hidrante. Copie este código en el punto donde desee borrar el DataGridView y sustituya un valor por "hydrantNum" que sabe que no recuperará datos. La cuadrícula se borrará. Y cuando el usuario realmente selecciona una instalación (en este caso, un hidrante), el enlace está en su lugar para llenar el DataGridView de manera apropiada.
Puedes hacerlo de esta manera:
DataGridView1.Enable = false
DataGridView1.DataSource = Nothing
DataGridView1.Enable = true
Puedes hacerlo solo por las siguientes 2 líneas:
DataGridView1.DataSource=Nothing
DataGridView1.DataBind()
Si GridView
(si el nombre es gvArchive
) está vinculado a cualquier DataSource
, lo siguiente lo borrará:
gvArchive.DataSource = Nothing
gvArchive.DataBind()
Si el DataGridView está enlazado a cualquier fuente de datos,
DataGridView1.DataSource = Nothing
DataGridView1.DataBind()
Si el DataGridView está vinculado a cualquier fuente de datos, deberá establecer la propiedad DataSource
del DataGridView en Nothing
.
Si el DataGridView no está vinculado a ninguna fuente de datos, este código hará el truco:
DataGridView.Rows.Clear()
Sigue el camino fácil como este
Supongamos que ta
es un DataTable
ta.clear()
DataGridView1.DataSource = ta
DataGridView1.DataSource = Nothing
También puede probar este código si desea borrar todos los datos en su DataGridView
DataGridView1.DataSource.Clear()
Tengo este código trabajando en forma de Windows,
Public Class Form1
Private dataStuff As List(Of String)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
DataGridView1.DataSource = Nothing
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
dataStuff = New List(Of String)
dataStuff.Add("qwerty")
dataStuff.Add("another")
dataStuff.Add("...and another")
DataGridView1.DataSource = dataStuff
End Sub
End Class
Tuve el mismo problema en la limpieza de contenido de gridview. El origen de datos que utilicé era un datatable que no tenía columnas, y agregué columnas y filas programáticamente a datatable. Luego enlazar a datagridview. gridView.Rows.Clear()
el código relacionado con gridview como gridView.Rows.Clear()
, gridView.DataSource = Nothing
pero no funcionó para mí. Luego, intente el siguiente código relacionado con datatable antes de vincularlo a datagridview cada vez.
dtStore.Rows.Clear()
dtStore.Columns.Clear()
gridView.DataSource = dtStore
Y está funcionando bien, no hay replicación en DataGridView
Tuve el mismo problema: estaba vinculando programáticamente mi GridView1 a una tabla de SQL [dictonary] u otra [meny] PERO cuando seleccioné la segunda tabla de mi RadioButtonList1, estaba recibiendo un error (System.Web.HttpException: Campo o propiedad con el título [el título de la primera columna de la tabla seleccionada anteriormente] no se encontró en la fuente de datos seleccionada.) es decir, decir que no se pudieron encontrar las columnas de mi primera tabla seleccionada. Todo lo que necesitaba hacer era insertar:
GridView1.Columns.Clear()
Antes de agregar las columnas de la tabla. Aquí va el código completo:
Dim connectionString As String = "your-string-details"
Dim connection As New SqlConnection(connectionString)
Luego viene tu primer Sub:
Private Sub BindOrders()
connection.Open()
Dim sqlCommand As String = "SELECT * FROM [dictionary]"
Dim dataAdapter As New SqlDataAdapter(sqlCommand, connection)
Dim dt As New DataTable()
dataAdapter.Fill(dt)
GridView1.Columns.Clear() '' clear columns before adding new ones
If GridView1.Columns.Count <= 0 Then
Dim Field As New BoundField()
Field.DataField = "id"
Field.HeaderText = "id"
GridView1.Columns.Add(Field)
Field = New BoundField()
Field.DataField = "strArHundreds"
Field.HeaderText = "strArHundreds"
GridView1.Columns.Add(Field)
Field = New BoundField()
Field.DataField = "strArTens"
Field.HeaderText = "strArTens"
GridView1.Columns.Add(Field)
Field = New BoundField()
Field.DataField = "strArSingles"
Field.HeaderText = "strArSingles"
GridView1.Columns.Add(Field)
End If
GridView1.DataSource = dt
GridView1.DataBind()
connection.Close()
End Sub
Luego viene tu segundo Sub:
Private Sub BindDocuments()
connection.Open()
Dim sqlCommand As String = "SELECT * FROM [meny]"
Dim dataAdapter As New SqlDataAdapter(sqlCommand, connection)
Dim dt As New DataTable()
dataAdapter.Fill(dt)
GridView1.Columns.Clear() '' clear columns before adding new ones
If GridView1.Columns.Count <= 0 Then
Dim Field As New BoundField
Field = New BoundField
Field.DataField = "id"
Field.HeaderText = "id"
GridView1.Columns.Add(Field)
Field = New BoundField
Field.DataField = "nazev"
Field.HeaderText = "nazev"
GridView1.Columns.Add(Field)
End If
GridView1.DataSource = dt
GridView1.DataBind()
connection.Close()
End Sub
Finalmente llega tu RadioButton:
Protected Sub RadioButtonList1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RadioButtonList1.SelectedIndexChanged
Dim index As Integer
index = RadioButtonList1.SelectedIndex
Select Case index
Case 0
BindOrders()
Exit Select
Case 1
BindDocuments()
Exit Select
End Select
End Sub
Para completar, aquí está el código para GridView1 y RadioButtonList1 en el archivo aspx asociado:
<asp:RadioButtonList ID="RadioButtonList1"
runat="server"
AutoPostBack="True"
OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged">
<asp:ListItem>Obraty</asp:ListItem>
<asp:ListItem>Dokumenty</asp:ListItem>
</asp:RadioButtonList>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
</asp:GridView>
Todo esto funciona bien ahora.
solo escribe esto
DataGridView1.DataSource = ""
Dim DS As New DataSet
DS.Clear()
- DATASET clear funciona mejor que DataGridView.Rows.Clear()
para mí:
Public Sub doQuery(sql As String)
Try
DS.Clear() ''<-- here
'' - CONNECT -
DBCon.Open()
'' Cmd gets SQL Query
Cmd = New OleDbCommand(sql, DBCon)
DA = New OleDbDataAdapter(Cmd)
DA.Fill(DS)
'' - DISCONNECT -
DBCon.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub