2016-10-07 9 views
0

私はDrone Pilotログブックを構築中です。ログブックのパイロットページでは、パイロットを選択するために上部のcomboBoxから選択します。このデータは、プロジェクト内のSQL Server(.MDF)データベースファイルから取得されます。パイロットを選択すると、データベースの既存のデータが残りのフォームに入力されます。私は以下のコードは、SQL Serverのデータベースファイルを正常に照会し、comboBoxFullNameを示していますが、今は空白になっていますので、記入するフォームの残りの部分をどのように取得しますか(すなわちFirstName、、AddressCity、など)ComboBoxの選択肢からTextBoxフィールドにデータを入力するにはどうすればよいですか?

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

あなたのTextBoxesを記入し、あなたのComboBoxSqlDataReaderの選択した値に基づいて、別のselect文を必要とします。

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... 
    } 
} 
関連する問題