0

我想用数据库中的名称填充我的组合框。是否有可能在 1 个组合框 2 列中填充它?例如:我有 2 列,Name并且Position. 我想把名字放在对应位置的组合框中。

例子:

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";

}

注意:我想用 jack 和 jill 的名字填充我的组合框,因为它们的位置相同。其他名字也在另一个组合框中..不在总统组合框中..我想要一个单独位置的组合框..你懂我的英语吗?

4

3 回答 3

2

您需要连接数据库或模型中的两个字段

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

或者

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

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

在您的组合框中,显示字段将是NameAndPosition

于 2012-10-08T04:41:55.083 回答
0

组合框中不可能有两列。但是,有几种可用的 javascript 将构建一种自定义界面来执行此操作。

这是其中一个的链接

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

另一种选择是,您可以同时选择名称和位置作为一个字段并将其显示在下拉列表中,例如

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

这样,您将在下拉列表中同时拥有姓名和职位。

于 2012-10-08T04:41:13.050 回答
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";
于 2013-02-10T23:56:47.653 回答