2010-11-09 5 views
0

J'ai fait ma connexion en C# avec MS SQL 2005 maintenant quand je clique sur un bouton Je veux que la première rangée soit affichée et quand on clique une seconde fois, montre l'enregistrement suivant dans la zone de texte.C# traversant les enregistrements

ce serait quelque chose dans le côté de la boucle, mais comment?

private void button1_Click(object sender, EventArgs e) 
    { 
     SqlConnection conn = new SqlConnection("Data Source=SERVER1\\SQLEXPRESS;Initial Catalog=try;Integrated Security=True;Pooling=False"); 
     SqlDataReader rdr = null; 

     try 
     { 
      conn.Open(); 
      // 3. Pass the connection to a command object 
      MessageBox.Show("connection opened"); 
      SqlCommand cmd = new SqlCommand("select * from trytb", conn); 
      // 4. Use the connection 
      // get query results 
      rdr = cmd.ExecuteReader(); 

      while (rdr.Read()) 
      { 
       //rdr.Read(); 
       MessageBox.Show(rdr[0].ToString() + rdr[1].ToString()); 
       //textBox1.Text = rdr[0].ToString(); 
       // textBox2.Text = rdr[1].ToString(); 
      } 
     } 
     catch (Exception ex) { MessageBox.Show(ex.Message); } 
     finally 
     { 
      // close the reader 
      if (rdr != null) 
      { 
       MessageBox.Show("reader closing"); 
       rdr.Close(); 
      } 

      // 5. Close the connection 
      if (conn != null) 
      { 
       MessageBox.Show("connection closing"); 
       conn.Close(); 
      } 
     } 
    } 

il n'y a pas d'erreur du tout ce que je veux juste la fonctionnalité du bouton à chaque fois que je clique sur i fournir enregistrement suivant dans textfield

+0

Pouvez-vous partager un peu plus Il est difficile de dire ce qui ne va pas sans regarder le code ... Avez-vous essayé de tester votre lecteur de données (par exemple l'application console) pour vous assurer qu'il renvoie ce que vous voulez et que cette erreur ne se trouve pas dans la logique de récupération de données – zam6ak

+0

Web ou de bureau? –

+0

son application de bureau – salman

Répondre

1

Ne pas oublier de voter vers le haut. la façon correcte de faire ceci est basée sur le fait que la table dans la base de données est fixée. pour éviter de déranger la base de données chaque fois que vous cliquez sur il est préférable d'utiliser SqlDataAdapter et prendre toute la table et de courir sur la table eack temps que vous cliquez. (Ne pas oublier de garder une variable globale pour compter la ligne actuelle une plus importante utilisation chose- Using sur toute catégorie à usage unique pour assurer l'élimination et la capture expections échantillon:..

Using(SqlConnection con=new SqlConnection(connectionString)){} 
+0

pouvez-vous m'en dire plus en détail? du code source? – salman