2016-06-29 102 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