#c#
#c#
Вопрос:
В моем проекте у меня есть поле со списком стран (PaysCmBx0), которое заполняется из таблицы базы данных стран [Pays], столбец [pays], что я хочу сделать, когда я выбираю страну в поле со списком, он вставляет токен кода альфа-страны из столбца кода альфа-страны [Alpha2] в другой таблице (пример: Соединенные Штаты = США).
поэтому, когда я выбираю страну из выпадающего списка, она ничего не делает, она вводит то же значение.
Моя таблица выглядит так:
[Aplha2] [Pays]
GB United Kingdom
IM Isle of Man
TZ United Republic Of Tanzania
US United States
BF Burkina Faso
UY Uruguay
UZ Uzbekistan
вот мой код :
void Fillcombo()
{
string Query = "SELECT * FROM Pays";
SqlCommand cmd = new SqlCommand(Query, con);
SqlDataReader myRead;
try
{
con.Open();
myRead = cmd.ExecuteReader();
while (myRead.Read())
{
string sName = myRead["Pays"].ToString();
PaysCmBx0.Items.Add(sName);
}
con.Close();
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}
}
private void AddBtn_Click(object sender, EventArgs e)
{
try
{
string Query = "INSERT INTO [dbo].[Adresses] ([idParent],[Type] ,[Adresse0],[Adresse1],[Adresse2],[CPT],[Ville],[Pays]) VALUES ('" Contact.idContact "','" TypeAdrCmBx.Text "','" this.AdrTxtBx0.Text "','" this.AdrTxtBx1.Text "','" this.AdrTxtBx2.Text "','" this.CptTxtBx.Text "','" this.VilleTxtBx.Text "','" this.PaysCmBx0.Text "')";
SqlCommand cmd = new SqlCommand(Query, con);
con.Open();
SqlDataReader Read;
try
{
Read = cmd.ExecuteReader();
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}
con.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void PaysCmBx0_SelectedIndexChanged(object sender, EventArgs e)
{
string Query1 = "SELECT * FROM Pays WHERE Pays='" PaysCmBx0.Text "'";
SqlCommand cmd1 = new SqlCommand(Query1, con);
SqlDataReader myRead;
try
{
con.Open();
myRead = cmd1.ExecuteReader();
while (myRead.Read())
{
string Code_Pays = myRead["Alpha2"].ToString();
PaysCmBx0.SelectedIndex.Equals(Code_Pays);
}
con.Close();
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}
}
Комментарии:
1. С какой проблемой вы столкнулись с этим кодом?
2. @ChetanRanpariya Когда я выбираю элемент в выпадающем списке, он фактически ничего не делает
3. @Jimmy означает, что когда выбор изменился
PaysCmBx0_SelectedIndexChanged
, это событие не запускается?4. @Jimmy ты отлаживал код
PaysCmBx0_SelectedIndexChanged
?
Ответ №1:
спасибо всем, кто финансирует решения для этого :
я создаю функцию, которая получает код страны, соответствующий тому, что выбрано в поле со списком:
private string get_code_pays(string nom_pays)
{
string Query1 = "SELECT * FROM Pays WHERE Pays='" PaysCmBx0.Text "'";
string Code_Pays="";
SqlCommand cmd1 = new SqlCommand(Query1, con);
SqlDataReader myRead;
try
{
con.Open();
myRead = cmd1.ExecuteReader();
while (myRead.Read())
{
Code_Pays = myRead["Alpha2"].ToString();
PaysCmBx0.SelectedIndex.Equals(Code_Pays);
}
con.Close();
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}
return Code_Pays;
}
а затем вызовите мою функцию с параметром в моей вставке:
string Query = "INSERT INTO [dbo].[Adresses] ([idParent],[Type] ,[Adresse0],[Adresse1],[Adresse2],[CPT],[Ville],[Pays]) VALUES ('" Contact.idContact "','" A "','" this.AdrTxtBx0.Text "','" this.AdrTxtBx1.Text "','" this.AdrTxtBx2.Text "','" this.CptTxtBx.Text "','" this.VilleTxtBx.Text "','" get_code_pays( this.PaysCmBx0.Text) "')";