2015-07-12 133 views
-2

clients具有列country。这包含一个代码如何将加入的列添加到数据网格视图

  • NL
  • GB

长名称表的国家之中。我可以放置一个窗口上一个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.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的情况下执行此操作?即将各个列拖到窗口中。使用表格适配器填充方法对直接查询进行排序,但我怎样才能达到上述目的?

+0

没有理由说'clients.country AS coountry_cd,',例如,不起作用。第二个问题 - 预计一次提出一个问题,当你提出问题时,请详细说明你的目标,因为目前还不清楚。 – Crowcoder

+0

谢谢你的回答,我对第二个问题感到抱歉。我不擅长解释自己,但是:网格来自一张桌子 - 客户端有'国家'列。如果我加入另一个表(国家)... clients.country as country_code ... JOIN ....作为国家,则加入的列代替网格中的国家/地区,但不会显示country_code。换句话说,我不能以这种方式向网格添加一列。我可以替换列但不添加列。我肯定缺少一些基本的东西,但是什么? 无论如何,谢谢你的倾听。 –

+0

嗨,我到了那里 - 慢慢地。我找到了添加列的方法。 DataGridView1.Columns.Add(“country_code”,“country_code”)只能填充它。 ... clients.country as country_code不起作用。我将命令放在上面的代码中的comm.open()之后。 –

回答

0

设置DataGridView1.AutoGenerateColumns = true可以自动显示查询中的所有列。

相关问题