Как изменить значение combobox при вставке в базу данных?

#c#

#c#

Вопрос:

Я создал combobox с элементами.

Визуально в моей форме будут отображаться тексты элементов, и я хочу изменить значения на числа при вставке в базу данных.

пример :

         private void contact(){
        TypeAdrCmBx.Items.Add("NPAI");
        TypeAdrCmBx.Items.Add("Personnelle");
        TypeAdrCmBx.Items.Add("Professionelle");
        TypeAdrCmBx.Items.Add("Vacances"); }
  

это мой запрос на вставку :

                 string Query2 = "INSERT INTO [dbo].[Adresses] ([Type] ,[Adresse0],[Adresse1],[Adresse2],[CPT],[Ville],[Pays]) VALUES ('"   this.TypeAdrCmBx.Text   "','"   this.AdrTxtBx0.Text   "','"   this.AdrTxtBx1.Text   "','"   this.AdrTxtBx2.Text   "','"   this.CptTxtBx.Text   "','"   this.VilleTxtBx.Text   "','"   this.PaysCmBx0.Text   "')";
  

в базе данных значения combobox вставляются в виде чисел :

  "NPAI" = 1
 "Personnelle" = 2
 "Professionelle" = 3
 "Vacances" = 4
  

Комментарии:

1. Вы пробовали конвертировать. ToInt32()?

Ответ №1:

Решение на стороне базы данных,

Для этого вам нужно 2 таблицы в базе данных. Одна таблица будет содержать строки и значения типа

X таблица

 ID Number  Value
1    1     "NPAI" 
2    2     "Personnelle"
3    3     "Professionelle"
4    4     "Vacances"
  

и в другой таблице вы будете использовать только числа.
Когда вы захотите их прочитать, вы будете использовать левое соединение.

Решение на стороне c #.

Вы можете в основном преобразовать их с помощью if,

 string a="";
if (TypeAdrCmBx.Text.Equals("NPAI"))
    a="1";
else if (TypeAdrCmBx.Text.Equals("Personnelle"))
    a="2";
  

А затем просто сделайте вставку с помощью a.

Надеюсь, это поможет.