我正在从vb.net
的SQL查询中构建数据表
一旦我使用填充数据表
' Build DataTable to Store Result
Dim dt As DataTable = New DataTable()
Dim da As SqlDataAdapter = New SqlDataAdapter(sqlCommand)
' Fill DataTable From SQL Query
da.Fill(dt)
我要添加两列以合并某些数据,例如名字和姓氏
' Merge Columns
dt.Columns.Add("RECIPIENT", GetType(String)).SetOrdinal(0)
dt.Columns.Add("PURCHASER", GetType(String)).SetOrdinal(1)
For Each Row As DataRow In dt.Rows
Row("RECIPIENT") = String.Format("{0} {1}", Trim(Row("INSURED_FIRST_NAME")), Trim(Row("INSURED_LAST_NAME")))
Row("PURCHASER") = String.Format("{0} {1}", Trim(Row("PAYOR_FIRST_NAME")), Trim(Row("PAYOR_LAST_NAME")))
Next
最后,我正在使用DataGridView
在表单上显示内容。但是,看来DAtaGridView
正在切断最后一列。
' Add DataTable as DataSource and Auto Generate Columns
dgvContent.DataSource = Records
dgvContent.AutoGenerateColumns = True
例如,如果我的列ID
,INSURED_FIRST_NAME
,INSURED_LAST_NAME
,PAYOR_FIRST_NAME
,PAYOR_LAST_NAME
,TOTAL_COST
一旦将AutoGenerateColumns
设置为true
,它将为所有字段创建列标题,但最后一个字段除外,在此情况下为TOTAL_COST
为什么会这样呢?除了
' Add Blank Column to DataTable so `AutoGenerateColumns` Generates All Visible Columns Correctly
dt.Columns.Add("BLANK", GetType(String))
答案 0 :(得分:0)
' Build DataTable to Store Result
Dim dt As DataTable = New DataTable()
Dim da As SqlDataAdapter = New SqlDataAdapter(sqlCommand)
' Fill DataTable From SQL Query
da.Fill(dt)
在上面的代码块中,修改sqlCommand变量以包括以下列
INSURED_FIRST_NAME + ' ' + INSURED_LAST_NAME AS RECIPIENT, PAYOR_FIRST_NAME + ' ' + PAYOR_LAST_NAME AS PURCHASER
一起删除以下块
' Merge Columns
dt.Columns.Add("RECIPIENT", GetType(String)).SetOrdinal(0)
dt.Columns.Add("PURCHASER", GetType(String)).SetOrdinal(1)
For Each Row As DataRow In dt.Rows
Row("RECIPIENT") = String.Format("{0} {1}", Trim(Row("INSURED_FIRST_NAME")), Trim(Row("INSURED_LAST_NAME")))
Row("PURCHASER") = String.Format("{0} {1}", Trim(Row("PAYOR_FIRST_NAME")), Trim(Row("PAYOR_LAST_NAME")))
Next
下面的块不执行您的想法,默认情况下,“ AutoGenerateColumns”在DGV上为true,也仅在设置数据源之前相关。
' Add DataTable as DataSource and Auto Generate Columns
dgvContent.DataSource = Records
dgvContent.AutoGenerateColumns = True