Vb.net 如何将联接列添加到datagridview
表Vb.net 如何将联接列添加到datagridview,vb.net,winforms,datagridview,Vb.net,Winforms,Datagridview,表clients有一列country。这包含一个代码 NL 国标 等等 长名称在表国家中。我可以在窗口上放置datagridview,并用sql查询填充它,例如: Dim myda As New MySqlDataAdapter Dim dbDataset As New DataTable Dim bSource As New BindingSource Dim query = “SELECT clients.client_id, clients.client_name, countries
clients
有一列country
。这包含一个代码
- NL
- 国标
- 等等
Dim myda As New MySqlDataAdapter
Dim dbDataset As New DataTable
Dim bSource As New BindingSource
Dim query = “SELECT clients.client_id, clients.client_name, countries.country country FROM clients LEFT OUTER JOIN countries ON countries.country_code = clients.country WHERE ..."
conn.Open()
Dim cmd = New MySqlCommand(query, conn)
myda.SelectCommand = cmd
myda.Fill(dbDataset)
bSource.DataSource = dbDataset
DataGridView1.DataSource = bSource
myda.Update(dbDataset)
conn.Close()
这是可行的,长名称显示为,但只有在我为联接列指定了与客户表中的列名相同的别名(即country
)时才会显示。这将覆盖“客户端”列,并且我无法将另一个连接列添加到网格中
有没有一种方法可以在同一个网格中显示GB和大不列颠
第二个问题:没有datagridview我怎么做?即,将各个列拖动到窗口。使用表适配器填充方法可以直接查询,但如何实现上述功能?设置
DataGridView1.AutoGenerateColumns=true
以自动显示查询中的所有列。例如,clients.country AS CooCountry\u cd,
没有理由不起作用。第二个问题-一次只能问一个问题,当你问这个问题时,请详细说明你的目标,因为它不清楚。谢谢你的回答,我对第二个问题感到抱歉。我不太擅长解释自己,但是:网格来自一个表——客户机有一列“国家”。如果我加入另一个表(国家)…客户端.country作为国家/地区代码。。。参加作为国家/地区,则连接列将取代网格中的列国家/地区,但不会显示国家/地区代码。换句话说,我不能以这种方式向网格中添加列。我可以替换列,但不能添加列。我肯定错过了一些基本的东西,但是什么呢?无论如何,谢谢你的聆听。嗨,我正在慢慢地到达那里。我找到了一种添加列的方法。DataGridView1.Columns.Add(“国家/地区代码”、“国家/地区代码”)只有我无法填充它。。。clients.country作为国家/地区代码不起作用。在上面的代码中,我将命令放在comm.open()之后。这太麻烦了。如果网格具有AutoGenerateColumns
true,那么它将为DataTable包含的任何内容创建列。你没有表现出来的东西是错的。是使用网格的一个示例。虽然不能直接回答您的问题,但它可能有助于理解概念。谢谢Crowcoder!AutoGenerateColumns做到了这一点。非常感谢你的耐心。