2016-10-07 7 views
0

Я нахожусь в процессе создания журнала Drone Pilot. В журнале регистрации на странице «Пилоты» вы выбираете из comboBox вверху, чтобы выбрать своего пилота. Эти данные берутся из файла базы данных SQL Server (.MDF) в проекте. После того, как вы выбрали пилот, существующие данные из базы данных заполняют остальную часть формы. Код, который у меня ниже, успешно запрашивает файл базы данных SQL Server и показывает FullName в comboBox, но теперь я нахожусь в пустом состоянии, как я получаю остальную часть формы для заполнения (например, FirstName, LastName, Address, City и т.д.)Как заполнить поля TextBox из списка ComboBox?

private void frmPilots_Load(object sender, EventArgs e) 
{ 
    using (SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Kevin\ownCloud\Programming\C# Projects\DroneLogbook\DroneLogbook\data.mdf;Integrated Security=True;Connect Timeout=30")) 
    { 
     SqlCommand sc = new SqlCommand("select Id,FullName from Pilots", conn); 
     conn.Open(); 

     SqlDataReader reader; 
     reader = sc.ExecuteReader(); 

     DataTable dt = new DataTable(); 
     dt.Columns.Add("Id", typeof(string)); 
     dt.Columns.Add("FullName", typeof(string)); 

     dt.Load(reader); 

     cmbExistingPilot.ValueMember = "Id"; 
     cmbExistingPilot.DisplayMember = "FullName"; 
     cmbExistingPilot.DataSource = dt; 

     conn.Close(); 
    } 
+0

Если вы чувствуете, что ответ решил проблему, отметьте ее как «принятую», нажав на серый флажок рядом с ответом. Проверьте эту ссылку, чтобы узнать, как принять ответ: http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

ответ

1

Вам нужен другой select заявление на основе выбранного значения вашего ComboBox и SqlDataReader, чтобы заполнить ваш TextBoxes. Что-то вроде этого:

SqlCommand command = new SqlCommand(
     "SELECT FirstName, LastName FROM Pilots where Id = @Id;", 
     connection); 
command.Parameters.AddWithValue("@Id",cmbExistingPilot.SelectedValue.ToString()); 
connection.Open(); 

SqlDataReader reader = command.ExecuteReader(); 

if (reader.HasRows) 
{ 
    while (reader.Read()) 
    { 
     txtFirstName.Text = reader.GetString(0); 
     txtLastName.Text = reader.GetString(1); 
     //and... 
    } 
} 
Смежные вопросы