Отображаемое имя плана, но удерживайте идентификатор плана и получить значение ID в поле со списком
Я видел много-много статей на эту тему, но пока ни одна не помогла.
Мое имя ComboBox-cbPlan. Я хочу получить PlanName на его дисплее, но на самом деле хочу держать его PlanID.
Следующий код отображает как имена, так и идентификаторы. Я попробовал ValueMember, DisplayMember, properties, но пока не смог разобраться.
Наконец, даже если это сработает, как я смогу вставить PlanID в другую таблицу? Буду ли я использовать Convert.ToString(cbPlan. Text) - который принесет имя плана, а не идентификатор.
Пожалуйста, помогите в этом - большое вам заранее спасибо! :)
Тип данных П. С. 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"; } }
Что я уже пробовал:
- Несколько статей на подобные темы.
- Код, как показано выше.
- Свойства ValueMember и DisplayMember.
- Преобразование в int.
Michael_Davies
Зачем преобразовывать в строку то, что уже является строкой?
"Преобразовать.ToString(cbPlan. Text) - который принесет имя плана, а не идентификатор."
cluelessentity
Вот именно, это не работает.
Но даже если я получу PlanID как valuemember в combobox, он не будет извлечен при сохранении в базе данных для другой таблицы.
Если использовать в качестве cbPlan.ValueMember, он возвращает PlanID.
Если использовать в качестве cbPlan.Текст, он возвращает planname на.
Karthik_Mahalingam
Совет: Всегда используйте Ответить кнопка, чтобы отправить комментарии / запрос пользователю, чтобы пользователь получил уведомление и ответил на ваш текст.