C# хранить содержимое из БД в список

Код C#:

   try
        {
            string mydbConnection = "datasource=localhost;port=3306;username=root;password=Greenford123;";
            MySqlConnection connDB = new MySqlConnection(mydbConnection);
            MySqlCommand cmdDataBase = new MySqlCommand("SELECT * FROM project.student", connDB);
            MySqlDataReader DBReader;
            connDB.Open();
            DBReader = cmdDataBase.ExecuteReader();
            while (DBReader.Read())
            {
                List<string> mylist = new List<string>();
                mylist.Add(DBReader.ToString());

                foreach (var item in mylist)
                {
                    MessageBox.Show("The details are " + item);
                }  
            }
            connDB.Close();
        }
        catch(Exception ex)
        {
            MessageBox.Show("Error! " + ex);
        }

Задача:

Чего я хочу достичь в своем коде:

-сохранить содержимое из БД в список, а затем вывести список.

Однако это вывод, который я получаю:

OUTPUT = "детали - MySQL.Data.MySqlClient.MySqlDataReader"

1 ответ

Решение

Может быть, вам следует перебрать поля:

while (DBReader.Read())
{
    List<string> mylist = new List<string>();
    for(int i=0; i<DBReader.FieldCount; i++)
        myList.Add(DBReader.GetValue(i).ToString());


    foreach (var item in mylist)
    {
        MessageBox.Show("The details are " + item);
    }  
}

В противном случае ваш datareader просто преобразуется в строку, по умолчанию он просто показывает имя своего класса.

Другие вопросы по тегам