2012-10-08 88 views
0

我想用數據庫中的名稱填充我的組合框。是否有可能在1個組合框中添加2列?例如:我有2列,NamePosition。我想把名字放在與相應位置相結合的組合框中。如何從數據庫C#填充組合框?

例如:

Name      Position 
--------------------------------------------- 
jack      President 
jill      President 
maria      Vice President 
john      Secretary 

這裏是我的代碼:

{

 DataTable table = new DataTable(); 
     using (SqlConnection sqlConn = new SqlConnection("my connection")) 

     { 

     using (SqlDataAdapter da = new SqlDataAdapter(@"SELECT Name, Position FROM CandidateTable", sqlConn)) 

     da.Fill(table); 

     } 

     comboBox1.DataSource = table; 

     comboBox1.DisplayMember = "Name"; 

     comboBox1.ValueMember = "Position"; 

}

注:我想,以填補我與傑克和吉爾的名字組合框只bcoz他們擁有相同的職位。和其他名稱在另一個組合框也..不是在總統組合框..我想有一個組合框分開的位置..你得到我的英語?

+0

如果您顯示迄今爲止所做的工作,我們可以幫助您。但我們不是免費的編碼器。你應該寫你自己的代碼。 –

回答

0

組合框中不可能有兩列。不過,有幾個JavaScript可用來構建一種自定義界面來實現這一點。

這裏是其中的一個鏈接

http://blog.pengoworks.com/index.cfm/2008/4/3/Preview-jQuery-Multicolumn-Dropdown-Plugin

另一種選擇是,你可以選擇這兩個名稱和位置作爲一個字段,並在下拉像

'select [Name] + " - " + [Position"] from table xxx' 

這顯示它方式,你將有兩個,名字和位置在下拉菜單中。

2

你需要連接無論是從數據庫或模型中的兩個字段

SELECT (name + ' - ' + Position) AS NameAndPosition from Employee 

OR

public class Employee 
{ 
    public string Name {get; set; } 
    public string Position {get; set; } 

    public string NameAndPosition 
    { 
     return String.Format("{0} - {1}", Name, Position);// 
    } 
} 

在你的組合框,顯示領域將是NameAndPosition

0

使用這個代碼,我確定你會得到你的答案...

string query = "SELECT unitId,unitName FROM unit"; 
DataSet ds = new DataSet(); 

sqlopen();//a function for check open or close sql connection 

// you must set already sqlConnection for sqlCon parameter 
SqlCommand cmd = new SqlCommand(query, sqlCon); 
cmd.CommandType = CommandType.Text; 
SqlDataAdapter da = new SqlDataAdapter(cmd); 
DataSet ds = new DataSet(); 
da.Fill(ds, "tbl"); 

cbEdit.DataSource = ds.Tables["tbl"]; 
cbEdit.DisplayMember = "unitName"; 
cbEdit.ValueMember = "unitId";