2016-10-27 3 views
0

J'essaie d'obtenir une table de ma base de données locale pour télécharger dans un fichier .txt. J'ai et je suis honnêtement à une perte.MySql à .txt en C# WPF

Il doit être dans un txt pour la simplicité des autres utilisateurs. J'ai essayé plusieurs façons différentes, j'ai essayé de l'appeler comme si je l'écrivais à une grille de données, ce qui n'a pas fonctionné.

Je reçois des résultats du Reader @

while (dbReader.Read()) 
       { 
        MessageBox.Show(dbReader.GetValue(0).ToString()); 
       } 

Il tire et la lecture des informations, ce qu'il est tout simplement pas écrire dans un fichier txt. Voici le code.

private void btnDLSql_Click(object sender, RoutedEventArgs e) 
     { 
      string dbConnection = "datasource=127.0.0.1;port=3306;username=root;password=12345"; 
      MySqlConnection conDataBase = new MySqlConnection(dbConnection); 
      MySqlCommand SelectCommand = new MySqlCommand("select GUID,BanTime,Reason from bans.bans order by BanType asc", conDataBase); 

      conDataBase.Open(); 

      MySqlCommand command = conDataBase.CreateCommand(); 
      MySqlDataReader dbReader = SelectCommand.ExecuteReader(); 

      if (dbReader != null) 
      { 
       System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\Users\mccla\Desktop\A3Bans.txt", true); 

       while (dbReader.Read()) 
       { 
        MessageBox.Show(dbReader.GetValue(0).ToString()); 
       } 
      } 

      conDataBase.Close(); 

     } 

Toute aide serait grandement appréciée. Désolé pour les questions, j'essaie habituellement de comprendre les choses par moi-même. Mais je ne trouve aucune information pour cela.

+0

Avez-vous essayé de mettre 'file.write (dbReader.GetValue (0) .ToString());' au lieu de la boîte un message spectacle? (Aussi, fermez-vous le fichier?) –

+1

Si vous voulez écrire un fichier, essayez d'écrire du code qui place les choses dans le fichier. – SLaks

+0

'dbReader' ne peut jamais être' null'. – SLaks

Répondre

1

Vous n'écrivez pas actuellement dans votre fichier ou fermez-le lorsque vous avez terminé. Vous devez également utiliser les instructions using, comme mentionné par SLaks dans les commentaires.

Vous pouvez probablement simplifier votre code:

 var dbConnection = "datasource=127.0.0.1;port=3306;username=root;password=12345"; 
     using (var conDataBase = new MySqlConnection(dbConnection)) 
     using (var selectCommand = new MySqlCommand("select GUID,BanTime,Reason from bans.bans order by BanType asc", conDataBase)) { 
      var dbReader = selectCommand.ExecuteReader(); 
      using (var file = new System.IO.StreamWriter(@"C:\Users\mccla\Desktop\A3Bans.txt", true)) { 
       while (dbReader.Read()) { 
        file.Write(dbReader.GetValue(0).ToString()); 
       } 
      } 
     } 
+0

Merci, je vais commencer à chercher des moyens de simplifier, comme je l'ai dit dans les commentaires ci-dessus, C# est la 1ère langue que je suis vraiment entrer dans quelques petits projets. – Mokey