如何清除有界数据网格视图并在同一个数据网格视图中加载另一个表 [英] How to clear a bounded datagridview and load another table in the same datagridview

查看:84
本文介绍了如何清除有界数据网格视图并在同一个数据网格视图中加载另一个表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好



我正在尝试从数据库中的值动态加载datagridview。

例如我有2个按钮Button1和Button2。我单击Button1并动态加载datagridview中的第一个表。但是当我点击Button2时,我收到一个错误NullreferenceException未处理 - 对象变量或With块变量未设置。

我已经清除了填充datagridview的数据源。我第一次工作正常。

请帮助



谢谢



我的代码

Hi everyone

I am trying to load datagridview dynamically from values from database.
For instance i have 2 buttons Button1 and Button2. i click on Button1 and load the first table in datagridview dynamically. But when i click on Button2 I get an error "NullreferenceException was unhandled - Object variable or With block variable not set."
I have cleared the datasource that fills the datagridview. I works fine the first time.
Please help

Thankyou

My Code

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim dt As New DataTable
dt.Clear()
datagridview1.DataSource = dt
datagridview1.DataSource = Nothing
datagridview1.Refresh()
Dim cmd As New SqlCommand("select srno, name from table1", sql)
Dim dt As New DataSet()
Dim sda As New SqlDataAdapter(cmd)
sda.Fill(dt)
datagridview1.DataSource = dt.Tables(0)
datagridview1.AutoGenerateColumns = False
datagridview1.Columns("srno").headerText = "Id"
datagridview1.Columns("name").headerText = "Full Name"
End sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim dt As New DataTable
dt.Clear()
datagridview1.DataSource = dt
datagridview1.DataSource = Nothing
datagridview1.Refresh()
Dim cmd As New SqlCommand("select serial, Items from table2", sql)
Dim dt As New DataSet()
Dim sda As New SqlDataAdapter(cmd)
sda.Fill(dt)
datagridview1.DataSource = dt.Tables(0)
datagridview1.AutoGenerateColumns = False
datagridview1.Columns("serial").headerText = "Id"
datagridview1.Columns("Items").headerText = "Name"
End sub

推荐答案

执行以下操作

Do as below
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    ResetDataGridView()
    Dim con as New SqlConnection(conString)
    Dim cmd As New SqlCommand("select srno as Id , name as 'Full Name' from table1", con)
    Dim dt As New DataSet()
    Dim sda As New SqlDataAdapter(cmd)
    sda.Fill(dt)
    datagridview1.DataSource = dt.Tables(0)
    con.Close()
End sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    ResetDataGridView()
    Dim con as New SqlConnection(conString)
    Dim cmd As New SqlCommand("select serial as Id, Items as Name from table2", con)
    Dim dt As New DataSet()
    Dim sda As New SqlDataAdapter(cmd)
    sda.Fill(dt)
    datagridview1.DataSource = dt.Tables(0)
    con.Close()
End sub




Private Sub ResetDataGridView()
    dataGridView1.CancelEdit()
    dataGridView1.Columns.Clear()
    dataGridView1.DataSource = Nothing
End Sub


解决了它通过设置

Solved it by setting
datagridview1.AutoGenerateColumns = True



感谢您的回复。


Thank you for your replies.


这篇关于如何清除有界数据网格视图并在同一个数据网格视图中加载另一个表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆