2016-06-29 41 views
0

我需要在datagrid中显示值而不是id。 我有两个表 表1,具有empid,receivedbyid,releasebyid,这个ID仅指表2 ,其中表2具有id,name。VB.net查询Datagrid视图

我需要在datagrid上显示Table1尊敬的NAME不是ID。 前表1 ID的被1,3,3 表2的数据是,1 - NAME1,2 - 名称2,3-NAME3

输出应该是,

Name1, Name3, Name3 
+0

请在表格结构和表格数据中简单地写下你的问题。 –

+0

嗨Chetan。表1我有字段,empid,receivedbyid,releasebyid,数据分别为1,3,3。表2,我有字段ID,名称。我在table2中的数据为ID(1),名称(jay),ID(2),名称(jay1),ID(3)名称(jay3),我想显示在数据表1上,而不是ID它会从table2获得价值。希望这是某种明确的。谢谢 – Jaymar

回答

0

对于C#

  StringBuilder sb = new StringBuilder(); 
     sb.appendLine(" select b.name as EmpName,c.Name as Receivedby,d.name as releasedby from table1 as a "); 
     sb.appendLine(" inner join table2 as b on a.empid = b.id "); 
     sb.appendLine(" inner join table2 as c on a.receivedbyid = b.id "); 
     sb.appendLine(" inner join table2 as d on a.releasebyid = b.id "); 

     SqlConnection conn = new SqlConnection(MyConString); 
     SqlCommand cmd = new SqlCommand(sb.tostring(), conn); 
       conn.Open(); 
       DataTable dataTable = new DataTable(); 
       SqlDataAdapter da = new SqlDataAdapter(cmd); 

       da.Fill(dataTable); 


       GridVIew.DataSource = dataTable; 
       GridVIew.DataBind(); 

For vb

Dim sb As New StringBuilder() 
sb.appendLine(" select b.name as EmpName,c.Name as Receivedby,d.name as releasedby from table1 as a ") 
sb.appendLine(" inner join table2 as b on a.empid = b.id ") 
sb.appendLine(" inner join table2 as c on a.receivedbyid = b.id ") 
sb.appendLine(" inner join table2 as d on a.releasebyid = b.id ") 

Dim conn As New SqlConnection(MyConString) 
Dim cmd As New SqlCommand(sb.tostring(), conn) 
conn.Open() 
Dim dataTable As New DataTable() 
Dim da As New SqlDataAdapter(cmd) 

da.Fill(dataTable) 


GridVIew.DataSource = dataTable 
GridVIew.DataBind() 

此代码将帮助您。

+0

嗨切坦,你的反应非常感谢。代码给了我一个想法,但不幸的是没有返回值,或者我错过了一些东西。我正在使用VB 2010 Express。希望您可以在此vb版本上相应地修改代码。它将不胜感激。期待同样的。提前致谢。 – Jaymar

+0

你使用vb.net与窗口应用程序? –

+0

嗨Chetan,是的,谢谢你的回应! – Jaymar