2015-04-16 29 views
0

我有一个datagridview,我已经把3列放在那里(通过设计),但是当我运行这个代码时,它增加了另外3列,并在那些新创建的列中加载数据。它如何才能从我创建的列中加载数据?VB.net将数据从Mysql加载到datagridview中

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

代码形式负载:

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 
+0

不要让你的DataGrid的AutoGenerateColumns – Icepickle

回答

1

DataGridView列有属性DataPropertyName,设置它的价值列名从SQL查询。
这将在预定义栏

并显示数据@Icepickle在评论中说,设置datagrid_Subject.AutoGenerateColumns = False
这将防止datagridview的生成在您的SQL查询

0

SELECT语句中使用的只是去所有字段列到工具箱和拖放datagridview, 上的属性名称就像dgvSubject 上面的代码使用你的代码将看起来像这样;

昏暗的SqlDataAdapter作为新个MySqlDataAdapter 昏暗DT作为新的DataTable 昏暗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 
相关问题