我看到很多关于此的文章但到目前为止没有任何帮助。 我的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";
}
}
答案 0 :(得分:0)
首先修改将项目添加到组合框的方法,不应该使用Reader。其次,如果您不想显示PlanID,为什么要添加PlanID? 这段代码可以帮助你...
foo(A());
您应首先将数据从数据库中提取到上面的某些数据表或数据集 cbPlan.DataSource = dt;
这会将您的id作为ValueMember保存为ID,其显示的文本将是PlanName。希望这会对你有所帮助。