显示计划名称但保留计划ID并在组合框中检索ID值

时间:2017-02-24 10:55:40

标签: c# visual-studio combobox dataset valuemember

我看到很多关于此的文章但到目前为止没有任何帮助。 我的ComboBox名称是cbPlan。我想在它的显示中检索PlanName但是想要实际保存PlanID。 以下代码显示名称和ID。我尝试过ValueMember,DisplayMember,属性,但还没有对它进行排序。 最后,即使这样做,我将如何在另一个表中插入PlanID?我会使用Convert.ToString(cbPlan.Text) - 它会带来PlanName而不是ID。 请帮忙 - 非常感谢你提前! :) 附: 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";


            }
        }

1 个答案:

答案 0 :(得分:0)

首先修改将项目添加到组合框的方法,不应该使用Reader。其次,如果您不想显示PlanID,为什么要添加PlanID? 这段代码可以帮助你...

foo(A());

您应首先将数据从数据库中提取到上面的某些数据表或数据集 cbPlan.DataSource = dt;

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