繁体   English   中英

VB.net从MySQL将数据加载到datagridview

[英]VB.net Loading data to datagridview from Mysql

我有一个datagridview,已经在其中放置了3列(通过设计),但是当我运行此代码时,它又添加了3列,并将数据加载到那些新创建的列中。 如何仅从我创建的列中加载数据?

编辑:第一和第二列是文本框,第三是组合框。

代码的形式为:

    Dim sqlDataAdapter As New MySqlDataAdapter
    Dim dt As New DataTable
    Dim bSource As New BindingSource

    Try
        sqlconn.Open()
        Dim query As String
        query = "SELECT * FROM tbl_subject ORDER BY yearlevel, code"
        sqlcommand = New MySqlCommand(query, sqlconn)
        sqlDataAdapter.SelectCommand = sqlcommand
        sqlDataAdapter.Fill(dt)
        bSource.DataSource = dt
        datagrid_Subject.DataSource = bSource
        sqlDataAdapter.Update(dt)

        sqlconn.Close()
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    Finally
        sqlconn.Dispose()
    End Try

DataGridView列具有属性DataPropertyName ,将其值设置为SQL查询中的列名。
这将在预定义的列中显示数据

就像@Icepickle在评论集中所说的那样datagrid_Subject.AutoGenerateColumns = False
这将防止datagridview为sql查询的SELECT语句中使用的所有字段生成列

只需转到工具箱并拖放datagridview,在属性上使用上面的代码将其命名为dgvSubject示例,它将看起来像这样;

将sqlDataAdapter作为新的MySqlDataAdapter将Dim dt作为新的DataTable将Dim bSource作为新的BindingSource

Try
    sqlconn.Open()
    Dim query As String
    query = "SELECT * FROM tbl_subject ORDER BY yearlevel, code"
    sqlcommand = New MySqlCommand(query, sqlconn)
    sqlDataAdapter.SelectCommand = sqlcommand
    sqlDataAdapter.Fill(dt)
    bSource.DataSource = dt
    dgvSubject.DataSource = bSource
    sqlDataAdapter.Update(dt)

    sqlconn.Close()
Catch ex As Exception
    MessageBox.Show(ex.Message)
Finally
    sqlconn.Dispose()
End Try

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM