2017-07-17 1 views
0

afin que je souhaite récupérer un texte de base de données SQL et placez-le dans une zone de texte. J'ai une combo-boîte dans laquelle je récupère une liste de last_names, et quand l'utilisateur sélectionne le nom de famille, la vue de grille de données est mise à jour pour contenir des informations relatives à ce nom de famille. Maintenant, comme nous le savons tous, il peut toujours y avoir un même nom de famille mais un prénom différent, donc je voulais obtenir une boîte de texte qui montre le prénom. J'ai beaucoup récuré sur Internet et trouvé des gens utilisant SQL Data Reader, et pensé à l'essayer moi-même, mais chaque fois que je l'ai exécuté, la boîte de texte est toujours vide après avoir sélectionné un nom dans la liste déroulante.Besoin d'aide pour récupérer un seul texte de la base de données SQL dans une zone de texte dans Visual Studio en utilisant C#

Voici mon code:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 

     SqlConnection con = new SqlConnection(@"my connection string"); 
     con.Open(); 
     SqlDataAdapter sda = new SqlDataAdapter("SELECT Statement to update the dataview grid based on the user's pick of the last name", con); 
     DataTable dt = new DataTable(); 
     sda.Fill(dt); 
     // populating dgv with data 
     dataGridView1.DataSource = dt; 

     //now attempting to get the textbox filled 

     SqlCommand cmd = new SqlCommand("Select [Person_FirstName] from person where Person_LastName='" + comboBox1.ValueMember + "'", con); 
     SqlDataReader dr = cmd.ExecuteReader(); 

     if (dr.Read()) 

     { 

      textBox1.Text = dr[0].ToString(); 
          // tried dr["Person_FirstName"].ToString() and dr["[Person_FirstName]").ToString(), with still no text showing in the textbox 
      dr.Close(); 
     } 
     con.Close(); 
    } 

S'il y a de toute façon de résoudre ce problème s'il vous plaît laissez-moi savoir le plus tôt possible! Et merci à l'avance!

+0

d'abord toujours utiliser la requête avec des paramètres. Avez-vous vérifié 'dr [0]' a une valeur? –

+0

Ensuite, vous cherchez 'comboBox1.Value', pas' ValueMember'. – Blorgbeard

+3

http://bobby-tables.com/ –

Répondre

0

Vous pouvez utiliser ce

SqlConnection con = new SqlConnection(@"my connection string"); 
    con.Open(); 
    SqlDataAdapter sda = new SqlDataAdapter("Select [Person_FirstName]  from person where Person_LastName='" + comboBox1.ValueMember + "'", con); 
    DataTable dt = new DataTable(); 
    sda.Fill(dt); 
    DataRow dr=dt.Rows[0];  
    TextBox.Text=dr[0].ToString();