【问题标题】:Are there any alternatives in clearing all columns of a DataGridView?清除 DataGridView 的所有列是否有任何替代方法?
【发布时间】:2017-03-16 15:04:48
【问题描述】:

我目前遇到这个问题,我的 DataGridView 中的数据正在消失,但可以在 DataBindings 中读取它们。

Public Sub FillDataSetAndView()

    SQL.ExecQuery("Select * From tblContestants")

    dgvContestants.DataSource = SQL.DBDT

    dgvContestants.AllowUserToAddRows = False
    dgvContestants.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill

    dgvContestants.Columns.Clear()

    dgvContestants.Columns.Add("ConName", "CONTESTANT NAME")
    dgvContestants.Columns(0).DataPropertyName = "ConName"

    lblContName.DataBindings.Add("Text", SQL.DBDT, "ConName")
End Sub

我使用dgvContestants.Columns.Clear()的原因是因为我想清除驻留在tblContetants(ConNum, ConName, ConImg) 中的大部分列,并将它们替换为我想加载到DataGridView 上的唯一column(ConName)

最后一行代码是我将绑定放置到它们的位置的地方。 ConImg 给 PictureBox,ConNum 给价值持有者。

我知道是 dgvContestants.Columns.Clear() 使数据消失了,因为每当我尝试将其注释掉时,DataGridView 都会很好地显示记录,但我想忽略 DataGridView 的所有不必要的列。

【问题讨论】:

  • 你应该用 QUOTENAME 包裹你的 dbName。正如发布的那样,这可能容易受到 sql 注入的影响。
  • @SeanLange 是的,谢谢你的提醒。
  • 大声笑我真的想解决您的问题,而不是问题。 :D

标签: sql-server database vb.net winforms


【解决方案1】:

将 null 分配给 datagridview DataSource 是清除数据绑定的最佳方法。

DataGrid.DataSource = Nothing
DataGrid.DataBind()

【讨论】:

    猜你喜欢
    • 2011-04-21
    • 1970-01-01
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多