VB.NET: 데이터 그리드 보기 지우기
해봤어요.
DataGridView1.DataSource=Nothing
그리고.
DataGridView1.DataSource=Nothing
DataGridView1.Refresh()
그리고.
DataGridView1.RefreshEdit()
아무 것도 작동하지 않습니다.
실행 시 DataGridView의 DataSource를 설정하는 방법을 작성했습니다.하지만 실행할 때마다 새로운 값으로 데이터를 복제하고 DGV의 이전 내용에 추가합니다.내용을 지우고 값을 추가합니다.그게 가능한가요?
소스에 DataGridView를 DataSource
의 Nothing
.
DataGridView가 데이터 소스에 바인딩되지 않은 경우 이 코드는 다음과 같은 작업을 수행합니다.
DataGridView.Rows.Clear()
결합되지 않은 경우에는 다음을 참고하십시오.
DataGridView.Rows.Clear()
열 집합을 제자리에 둡니다.
DataGridView.Columns.Clear()
..모든 열과 행이 제거됩니다.DGV 바인딩 해제를 사용하는 경우 다음에 사용할 때 열이 변경되면 행을 지우는 것이 적절하지 않을 수 있습니다.라이브러리 코드의 경우 열을 추가하기 전에 모든 열을 지웁니다.
난 아마 이걸...
DataGridView1.Rows.Clear()
행을 지우고 다시 바인딩합니다.
이렇게 쉬운 길을 따라 가세요.
라고 가정합니다.ta
입니다.DataTable
ta.clear()
DataGridView1.DataSource = ta
DataGridView1.DataSource = Nothing
데이터 그리드 보기를 null 대신 빈 컬렉션에 바인딩할 수 없습니다.그게 효과가 있나요?
새 결과를 검색할 때 데이터 그리드 보기에서 이전 레코드를 제거하려면 button_click event를 사용하여 다음 코드를 작성합니다.
me.데이터 그리드 보기1.DataSource.clear()
이 코드는 데이터 그리드 보기에서 이전 레코드를 제거하는 데 도움이 됩니다.
데이터 소스를 null로 설정하면 열이 제거됩니다.이것이 제게 맞는 일입니다.
c#:
((DataTable)myDataGrid.DataSource).Rows.Clear();
VB:
Call CType(myDataGrid.DataSource, DataTable).Rows.Clear()
및 My DataGridView에도 .myDataGridView.Columns.Clear()
잘 작동했지만,myDataGridView.Rows.Clear()
하지 않았다.시도한 사람들을 위한 참고 자료일 뿐입니다..Rows
.
에 대해 아무것도 하지 DataGridView
데이터 소스를 삭제합니다.는 클어어요해봤을 클리어하려고 했습니다.myDataset.clear()
방법, 그리고 그것은 효과가 있었습니다.
이 코드가 윈도우 형태로 작동하고 있습니다.
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
데이터 그리드가 일부 데이터 테이블에 바인딩된 경우 데이터 세트에서 테이블을 제거해야 합니다.그리드 보기가 자동으로 삭제됩니다.다른 방법은 없습니다.
[YourDatasetName].Tables.Clear()
그리드뷰 콘텐츠 삭제에서도 동일한 문제가 발생했습니다.제가 사용한 데이터 소스는 열이 없는 데이터 테이블이었고, 데이터 테이블에 열과 행을 프로그래밍 방식으로 추가했습니다.그런 다음 데이터 그리드 보기에 바인딩합니다.와 관련된 와 같은 코드를 사용해 .gridView.Rows.Clear()
,gridView.DataSource = Nothing
하지만 저한테는 효과가 없었어요.그런 다음 매번 데이터 그리드 보기에 바인딩하기 전에 데이터 테이블과 관련된 아래 코드를 시도하십시오.
dtStore.Rows.Clear()
dtStore.Columns.Clear()
gridView.DataSource = dtStore
DataGridView에서 복제 없이 정상적으로 작동합니다.
create 버튼을 클릭합니다.내부에 다음 코드 데이터 그리드 뷰어를 삽입합니다.DataSource=없음
검색 버튼에서 다음 문장으로 코드를 시작합니다.
데이터 그리드 뷰어데이터 원본 = DataSet.table
Nb: 테이블 대신 테이블의 실제 이름(예: 데이터 그리드 뷰어)을 입력합니다.데이터 원본 = DataSet.client
SQL 쿼리에서 데이터 그리드 보기로 정보를 제공할 때 데이터 그리드 보기를 다시 로드하기 전에 먼저 지울 수 있습니다.
dbDataSet을 새 DataTable로 정의한 위치에서 확인할 수 있습니다. dbDataSet은 공용 클래스 양식 내에서 양식의 시작 부분에 있어야 합니다.
Dim dbDataset AS New DataTable
당신의 비밀번호 안에, Sub 일병, 위치.
dbDataSet.Clear()
데이터 바인딩을 유지하고 일시적으로 데이터 그리드 보기를 지우려는 사용자 시나리오가 있을 수 있습니다.예를 들어, 사용자가 지도에서 기능을 클릭하여 편집할 속성을 표시하도록 합니다.처음 클릭하거나 이미 클릭하여 편집했습니다.사용자가 "Select Facility" 버튼을 클릭하면 이전 Facility의 데이터에 대한 DataGrid View(데이터 그리드 보기)를 지우려고 합니다(첫 번째 선택인 경우에는 오류를 발생시키지 않습니다).이 시나리오에서는 데이터 그리드 보기를 채우는 생성된 코드를 적용하여 데이터 그리드 보기를 정리할 수 있습니다.생성된 코드가 다음과 같다고 가정합니다.
Try
Me.Fh_maintTableAdapter.FillByHydrantNumber(Me.Fh2010DataSet.fh_maint, hydrantNum)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
우리는 소화전 번호를 기준으로 데이터 그리드 뷰를 채우고 있습니다.이 코드를 DataGridView를 지우려는 지점에 복사하고 데이터를 검색하지 않을 것으로 알고 있는 "hydrantNum" 값으로 대체합니다.그리드가 제거될 것입니다.또한 사용자가 실제로 시설(이 경우 소화전)을 선택하면 DataGridView를 적절하게 채울 수 있는 바인딩이 마련됩니다.
DataGridView가 데이터 소스에 바인딩된 경우
DataGridView1.DataSource = Nothing
DataGridView1.DataBind()
Dim DS As New DataSet
DS.Clear()
데이터셋 지우기는 다음보다 더 잘 작동합니다.DataGridView.Rows.Clear()
나를 위한:
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
에 약에만.GridView
(이름은 다음과 같습니다.)gvArchive
는 임의의 )에 있습니다.DataSource
다음을 수행하면 삭제됩니다.
gvArchive.DataSource = Nothing
gvArchive.DataBind()
그냥 이것을 쓰세요.
DataGridView1.DataSource = ""
저도 같은 문제가 있었습니다.GridView1을 하나의 SQL 테이블 [사전] 또는 다른 [메니]에 프로그래밍 방식으로 바인딩하고 있었지만 RadioButtonList1에서 두 번째 테이블을 선택했을 때 오류(시스템)가 발생했습니다.Web.HttpException:[이전에 선택한 테이블의 첫 번째 열 제목] 제목을 가진 필드 또는 속성을 선택한 데이터 원본에서 찾을 수 없습니다. 즉, 첫 번째 선택한 테이블의 열을 찾을 수 없음을 나타냅니다.제가 해야 할 일은 다음과 같습니다.
GridView1.Columns.Clear()
테이블 열을 추가하기 전에 입력합니다.다음은 전체 코드입니다.
Dim connectionString As String = "your-string-details"
Dim connection As New SqlConnection(connectionString)
그러면 첫 번째 서브가 나옵니다.
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
그런 다음 두 번째 서브가 나옵니다.
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
마지막으로 라디오 버튼이 제공됩니다.
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
다음은 연결된 asx.file의 GridView1 및 RadioButtonList1에 대한 코드입니다.
<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>
이제는 이 모든 것이 잘 작동합니다.
데이터를 저장하기 위해 데이터 집합 개체를 사용하는 것처럼 보이는 실수를 범했습니다.다음 코드를 사용하여 데이터 집합에 데이터를 넣을 때마다 데이터 집합에 이미 있는 데이터에 데이터를 추가합니다.
myDataAdapter.Fill(myDataSet)
다음 코드로 데이터 집합의 테이블을 프로그램의 DataGridView 개체에 할당하면 데이터 집합과 데이터 집합 테이블에 이미 있는 데이터를 지우지 않았기 때문에 중복된 결과가 표시됩니다.
myDataGridView.DataSource = myDataSet.Tables(0)
데이터 복제를 방지하려면 데이터 집합 개체에 대해 clear 메서드를 호출해야 합니다.
myDataSet.clear()
그런 다음 데이터 집합의 테이블을 DataGridView 개체에 할당합니다.코드는 이렇습니다.
myDataSet.clear()
myDataAdapter.Fill(myDataSet)
myDataGridView.DataSource = myDataSet.Tables(0)
다음 코드를 사용할 수 있습니다.
' 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
clear datgridview 명령을 구현하려는 모든 곳에서 이 코드 사용
datagridview1.datasource= nothing
datagridview1.datasource= ds
dt.clear() 'Dt as new DATATABLE
ds.clear() 'Ds as new Dataset
이 코드는 데이터 그리드 보기를 지우고 데이터베이스에서 데이터를 채울 때 데이터 복제를 중지합니다.
다음과 같은 방법으로 수행할 수 있습니다.
DataGridView1.Enable = false
DataGridView1.DataSource = Nothing
DataGridView1.Enable = true
그리드 보기 데이터를 지우려면 데이터 집합 또는 데이터 테이블을 지워야 합니다.
이 코드를 사용합니다. 다시 제출하더라도 그리드 보기 데이터를 지웁니다. 새 OleDb 연결 Dimcmd 새 OleDb 명령 Dimda 새 OleDb 데이터 어댑터 Dimda 새 OleDb 데이터 판독기 Dimda 새 데이터 테이블(con)로 작동합니다.상태 <> 1) 그렇다면 con.열기() 종료 Ifdt.삭제() '데이터를 매번 삭제하고 데이터 cmd를 새로 작성합니다.연결 = concmd.CommandText = "사용자에서 * 선택" da.명령 = cmdda를 선택합니다.데이터 그리드 보기1을 채웁니다.데이터 원본 = dt DataGridView1.표시 = 참
cmd.Dispose()
con.Close()
이 작업은 다음 두 줄로만 수행할 수 있습니다.
DataGridView1.DataSource=Nothing
DataGridView1.DataBind()
DataGridView의 모든 데이터를 지우려는 경우에도 이 코드를 사용할 수 있습니다.
DataGridView1.DataSource.Clear()
특정 셀에 대해 이 작업을(를) 사용합니다.
Datagrid.Rows(RowIndex).Cells(ColIndex).Value = DBNull.Value
DgRemolques는 WPF의 데이터 그리드 이름입니다.
dgRemolques.ItemsSource = DataTabledRemolques도 정리해야 합니다.지우기()
언급URL : https://stackoverflow.com/questions/2217175/vb-net-clear-datagridview
'programing' 카테고리의 다른 글
포스트 데이터로 리디렉션하는 방법(장고) (0) | 2023.05.07 |
---|---|
Xcode UI 테스트의 경우 지연/대기 (0) | 2023.05.07 |
단일 SELECT 문에 공통 테이블 식을 여러 개 사용하려면 어떻게 해야 합니까? (0) | 2023.05.07 |
git stash pop과 git stash 적용 간의 차이 (0) | 2023.05.07 |
VB에서 동사 문자열 리터럴을 수행하는 방법.NET? (0) | 2023.05.07 |