2016-12-12 8 views
0

Ich bin ziemlich neu und ich arbeite an einem Projekt, aber ich kann es nicht bekommen, Daten anzuzeigen oder herauszufinden, was falsch ist oder was ich falsch gemacht habe. Jede Hilfe wäre großartig. Wie ich schon sagte, ich bin ziemlich neu und gehe immer noch meinen Weg durch.C# MySQL Tabellenliste

public class loadData 
{ 
    public int ID { get; set; } 
    public string LOAD1 { get; set; } 
    public string LOAD2{ get; set; } 
    public string LOAD3 { get; set; } 
    public string LOAD4 { get; set; } 
    public string constructString { get; set; } 

    public List<loadData> Select() 
    { 
     const string query = "SELECT * FROM data.dataload"; 
     string constring = constructString; 

     //Create a list to store the result 
     var list = new List<loadData>(); 

     //Open connection 

     //Create Command 
     MySqlConnection conDatabase = new MySqlConnection(constring); 
     try 
     { 
      using (MySqlCommand cmdDatabase = new MySqlCommand(query, conDatabase)) 
      { 
       //Create a data reader and Execute the command 
       MySqlDataReader dataReader = cmdDatabase.ExecuteReader(); 

       //Read the data and store them in the list 
       while (dataReader.Read()) 
       { 
        list.Add(new loadData 
        { 
         ID = int.Parse(dataReader["ID"].ToString()), 
         LOAD1 = dataReader["LOAD1"].ToString(), 
         LOAD2 = dataReader["LOAD2"].ToString(), 
         LOAD3 = dataReader["LOAD3"].ToString(), 
         LOAD4 = dataReader["LOAD4"].ToString(), 
        }); 
       } 

       Console.ReadLine(); 

       //close Data Reader 
       dataReader.Close(); 

       //close Connection 
       conDatabase.Close(); 

       //return list to be displayed 
       return list; 
      } 
     } 
     catch 
     { 
      return list; 
     } 
     finally { conDatabase.Close(); } 

    } 

    public void Display(List<loadData> list) 
    { 
     foreach (var load in list) 
     { 
      Console.WriteLine(string.Format("{0} {1}:\n{2}\n{3}\n{4}\n", 
       load.ID, 
       load.LOAD1, 
       load.LOAD2, 
       load.LOAD3, 
       load.LOAD4)); 
     } 
    } 
    /// CALL 
    //MYSQL 
    loadData data = new loadData(); 
    data.constructString = "datasource=dbt;port=8888;username=UNAME;password=PW;"; 
    data.Display(data.Select()); 
} 

(Von Kommentare von OP gegeben) ist der Fehler:

{ "Verbindung gültig und muss offen sein."} Eine nicht behandelte Ausnahme des Typs 'System.InvalidOperationException' aufgetreten

+0

Was ist der Fehler, den Sie bekommen, und was erwarten Sie zu erreichen? – Kulasangar

+0

Erster Schritt catch {throw;} anstatt die Liste zurückzugeben und wir werden sehen, was Ihr Problem ist. Sie müssen auch nicht MySqlCommand Dispose, Sie sollten MySqlConnection in die Verwendung von. – mybirthname

+0

{"Die Verbindung muss gültig und offen sein."} Eine nicht behandelte Ausnahme vom Typ 'System.InvalidOperationException' ist aufgetreten. –

Antwort

1

Sie haben vergessen, conDatabase.Open() zu rufen. Tun Sie das, bevor Sie versuchen, cmdDatabase.ExecuteReader(); auszuführen, und Sie werden gut sein