Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何将联接列添加到datagridview_Vb.net_Winforms_Datagridview - Fatal编程技术网

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
  • 国标
  • 等等
长名称在表国家中。我可以在窗口上放置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我怎么做?即,将各个列拖动到窗口。使用表适配器填充方法可以直接查询,但如何实现上述功能?

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

例如,
clients.country AS CooCountry\u cd,
没有理由不起作用。第二个问题-一次只能问一个问题,当你问这个问题时,请详细说明你的目标,因为它不清楚。谢谢你的回答,我对第二个问题感到抱歉。我不太擅长解释自己,但是:网格来自一个表——客户机有一列“国家”。如果我加入另一个表(国家)…客户端.country作为国家/地区代码。。。参加作为国家/地区,则连接列将取代网格中的列国家/地区,但不会显示国家/地区代码。换句话说,我不能以这种方式向网格中添加列。我可以替换列,但不能添加列。我肯定错过了一些基本的东西,但是什么呢?无论如何,谢谢你的聆听。嗨,我正在慢慢地到达那里。我找到了一种添加列的方法。DataGridView1.Columns.Add(“国家/地区代码”、“国家/地区代码”)只有我无法填充它。。。clients.country作为国家/地区代码不起作用。在上面的代码中,我将命令放在comm.open()之后。这太麻烦了。如果网格具有
AutoGenerateColumns
true,那么它将为DataTable包含的任何内容创建列。你没有表现出来的东西是错的。是使用网格的一个示例。虽然不能直接回答您的问题,但它可能有助于理解概念。谢谢Crowcoder!AutoGenerateColumns做到了这一点。非常感谢你的耐心。