0

2 つの異なる列を 1 つの特定のコンボボックスに表示したいと考えています。実行するCustomer 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";


}
4

3 に答える 3

1

「結合された」値を含む単一の結果列をすでに作成していることがわかります。それは戦いを持っています。

ただし、列に名前を付ける必要があります (AS FullNameエイリアスに注意してください)。

cmd.CommandText = "SELECT CustomerID, firstname + ',' + lastname AS FullName " +
    "FROM Customer";

したがって、後で名前で参照できます。

cboName.DisplayMember = "FullName";
于 2013-07-09T01:05:15.280 に答える
0

これをチェックして:

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

よろしくお願いします

于 2013-07-09T01:20:01.703 に答える