C# 如何在一个组合框中显示两个不同的列
我想在一个特定的组合框中显示两个不同的列。当我运行它时,将显示C# 如何在一个组合框中显示两个不同的列,c#,sql-server-2008,C#,Sql Server 2008,我想在一个特定的组合框中显示两个不同的列。当我运行它时,将显示客户ID。这是我的密码 void GetRecords2() { SqlCommand cmd = new SqlCommand(); cmd.Connection = cn; cmd.CommandText = "SELECT CustomerID, firstname + ',' + lastname FROM Customer"; SqlDataAdapter ad
客户ID
。这是我的密码
void GetRecords2()
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandText = "SELECT CustomerID, firstname
+ ',' + lastname FROM Customer";
SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adp.Fill(ds, "Customer");
cboName.DataSource = ds;
cboName.DisplayMember = "Customer.firstname, Customer.lastname";
cboName.ValueMember = "Customer.CustomerID";
}
我看到您已经在创建一个包含“合并”值的结果列。这就是我们的战斗 但是,您需要为您的列指定一个名称(注意
作为全名
别名):
因此,您可以稍后按名称引用它:
cboName.DisplayMember = "FullName";
这会奏效的。我发现将
字典
绑定到组合框
会产生更可预测的结果
我的方法省略了额外的SQL
语法、DataSet
和SqlDataAdapter
相反,我使用SqlDataReader
将所需信息放入字典
,然后将该字典
绑定为组合框的数据源
void GetRecords2()
{
Dictionary <int, string> myDict = new Dictionary<int, string>();
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandText = "SELECT CustomerID, firstname, lastname FROM Customer";
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
myDict.Add(Convert.ToInt32(reader["CustomerID"]),
reader["firstname"].ToString() + " " + reader["lastname"].ToString());
}
if (myDict.Count > 0)
{
cboName.DataSource = new BindingSource(myDict, null);
cboName.DisplayMember = "Value";
cboName.ValueMember = "Key";
}
}
void GetRecords2()
{
Dictionary myDict=新字典();
SqlCommand cmd=新的SqlCommand();
cmd.Connection=cn;
cmd.CommandText=“从客户中选择CustomerID、firstname、lastname”;
SqlDataReader=cmd.ExecuteReader();
while(reader.Read())
{
myDict.Add(Convert.ToInt32(读卡器[“CustomerID”]),
阅读器[“firstname”].ToString()+“”+reader[“lastname”].ToString());
}
如果(myDict.Count>0)
{
cboName.DataSource=newbindingsource(myDict,null);
cboName.DisplayMember=“Value”;
cboName.ValueMember=“Key”;
}
}
检查以下内容:
void GetRecords2()
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandText = "SELECT CustomerID, firstname
+ ',' + lastname FullName FROM Customer";
SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adp.Fill(ds, "Customer");
cboName.DataSource = ds;
cboName.DisplayMember = "FullName";
cboName.ValueMember = "CustomerID";
}
要获取选定值,请执行以下操作:
string customerid = cboName.SelectedValue.toString(); //CustomerID: 1
获取所选项目的步骤
string fullname = cboName.SelectedItem.Text; //FullName : John Hawkins
致以最诚挚的问候组合框仍显示客户信息不确定是否可能?你到底是什么意思
string fullname = cboName.SelectedItem.Text; //FullName : John Hawkins