当我使用autogeneratecolumns=false时,如果我在Button和ComboBox之间单击,一些列不会



实际上,我的应用程序中有一个组合框和按钮。在这个应用程序中,我使用autogeneratecolumns=false,并在按钮中添加了一些列到datagridview中的datapropertyname。第一次当我点击按钮时,它正确绑定,但当我选择Combo Box After按钮点击后,查询相关数据的某些列没有绑定。

注意:无论我提到什么,当我选择组合框时,带有datapropertyname的列都不会绑定到datagridview中 Vb.net

Dim cmd As New SqlCommand("SELECT * FROM Queries where Querys like '%" + ddlQuerys.Text + "%'", con)
cmd.CommandType = CommandType.Text
Dim sda As New SqlDataAdapter(cmd)
Dim ds As New DataSet()
gvInsuredData.Columns(0).Visible = True
gvInsuredData.Columns(1).Visible = True
sda.Fill(ds)
gvInsuredData.AutoGenerateColumns = False
gvInsuredData.DataSource = dt
gvInsuredData.Columns(2).Name = "personalPropertyItemID"
gvInsuredData.Columns(2).HeaderText = " Item ID"
gvInsuredData.Columns(2).DataPropertyName = "personalPropertyItemID"
gvInsuredData.Columns(3).Name = "personalPropertyQuantity"
gvInsuredData.Columns(3).HeaderText = "Qty"
gvInsuredData.Columns(3).DataPropertyName = "personalPropertyQuantity"
gvInsuredData.Columns(7).Name = "Age(y)"
gvInsuredData.Columns(7).HeaderText = "Age(y)"
gvInsuredData.Columns(7).DataPropertyName = "personalPropertyAge"
gvInsuredData.Columns(8).Name = "Age(m)"
gvInsuredData.Columns(8).HeaderText = "Age(m)"
gvInsuredData.Columns(8).DataPropertyName = "Personalpropertyagem"

gvInsuredData.Columns(9).Name = "Unit Cost"
gvInsuredData.Columns(9).HeaderText = "Unit Cost"
gvInsuredData.Columns(9).DataPropertyName = "personalPropertyCost"
gvInsuredData.Columns(10).Name = "Total Cost"
gvInsuredData.Columns(10).HeaderText = "Total Cost"
gvInsuredData.Columns(10).DataPropertyName = "PersonalPropertyTotalCost"

Dim AytC As Keyoti.RapidSpell.Grid.AYTDataGridViewTextBoxColumn = New Keyoti.RapidSpell.Grid.AYTDataGridViewTextBoxColumn()
AytC.HeaderText = "DescriptionProperty"
AytC.Name = "Description"
AytC.DataPropertyName = "personalPropertyDescription"
gvInsuredData.Columns(5).DataPropertyName = "personalPropertyDescription"
gvInsuredData.DataSource = ds.Tables(0)
Dim AytCtb As Keyoti.RapidSpell.Grid.AYTDataGridViewTextBoxColumn = New Keyoti.RapidSpell.Grid.AYTDataGridViewTextBoxColumn()
AytCtb.HeaderText = "SourceProperty"
AytCtb.Name = "Source"
gvInsuredData.Columns(6).DataPropertyName = "personalPropertySource"
gvInsuredData.DataSource = ds.Tables(0)

当我选择组合框时,项目ID、数量、年龄(Y(、年龄(m(、单位成本和总成本列不绑定,但其他列的数据正在绑定

我不能100%确定这是问题所在,但看起来非常可疑。创建一个名为ds:的填充DataSet

Dim ds As New DataSet()
'...
sda.Fill(ds)

但是,您将一个dt变量分配给网格的DataSource:,该变量在代码中没有出现

gvInsuredData.DataSource = dt

怎么了?当你只需要一个DataTable时,你为什么要创建一个DataSet?我认为dt至少应该是DataTable类型,但它是从哪里来的?你是否遗漏了一些相关的代码,或者你实际上没有分配你认为自己是的数据源?

最新更新