0

我看到了很多关于此的文章,但到目前为止没有任何帮助。我的组合框名称是 cbPlan。我想在它的显示中检索 PlanName,但想实际保存它的 PlanID。以下代码同时显示名称和 ID。我尝试了 ValueMember、DisplayMember、属性,但还无法对其进行排序。最后,即使这成功了,我将如何在另一个表中插入 PlanID?我会使用 Convert.ToString(cbPlan.Text) - 这将带来 PlanName 而不是 ID。请对此提供帮助 - 非常感谢您提前!:) PS PlanID 的数据类型是 int。

private void cbPlan_Click(object sender, EventArgs e)
        {
            cbPlan.Items.Clear();

            string pullsub = "select PlanID,PlanName from fbkPlanMaster(nolock)";
            string connString = ConfigurationManager.ConnectionStrings["Dbconn"].ToString();
            SqlConnection connection = new SqlConnection(connString); // defining sql connection
            SqlCommand cmd = new SqlCommand(pullsub, connection);
            cmd.CommandText = pullsub;
            connection.Open();
            SqlDataReader drd = cmd.ExecuteReader();
            while (drd.Read())
            {

                cbPlan.Items.Add(drd["PlanID"]);
                cbPlan.Items.Add(drd["PlanName"]);
                cbPlan.ValueMember = "PlanID";
                cbPlan.DisplayMember = "PlanName";


            }
        }
4

1 回答 1

0

首先修改您的方法以将项目添加到您的组合框中,您不应该使用 Reader。第二,不想显示为什么还要加上PlanID?此代码可以帮助您...

cbPlan.DataSource = dt;
cbPlan.ValueMember = "PlanID";
cbPlan.DisplayMember = "PlanName";

您应该首先将数据从数据库中获取到某个数据表或数据集,如上cbPlan.DataSource = dt;

这会将您的 ID 保存为 ValueMember 作为 ID,其显示的文本将为 PlanName。希望这对您有所帮助。

于 2017-02-24T12:13:57.130 回答