Как я могу поместить данные из списка в DataGridView? - PullRequest
0 голосов
/ 07 апреля 2020

Я отчаянно пытаюсь получить содержимое списка <>, заполненного данными из базы данных MYSQL, в представление данных. Часть моего класса Dataprovider, которая заполняет список "Saal"

public static List<Saal> ImportSaele()
{
    List<Saal> saallist = new List<Saal>();
    string sql = "Select SID, Name from saele";

    using (MySqlConnection con = new MySqlConnection(CONNECTIONSTRING))
    {
        con.Open();
        MySqlCommand command = new MySqlCommand(sql, con);
        MySqlDataReader reader = command.ExecuteReader();
        while (reader.Read() == true)
        {
            Saal sa = new Saal();
            sa.id = Convert.ToUInt32(reader["SID"]);
            sa.name = (reader["Name"]).ToString();

            saallist.Add(sa);
        }
        reader.Close();
        con.Close();
    }
    return saallist;
}

А вот часть, где я пытался импортировать ее в Datagridview (dgv_saele):

//Import Of Data
Saalliste = Dataprovider.ImportSaele();
dgv_saele.DataSource = Saalliste;

«Saalliste» заполняется необходимыми данными без каких-либо проблем, но не отображает их в Datagridview.

Я пытался поместить refre sh позади него и некоторые другие вещи, которые я нашел, но ничего не показалось Работа. Я всегда получаю пустое серое поле ... Также заранее извините за наполовину немецкое кодирование, мы вынуждены делать это так ...

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

@ TnTinMn Saal имеет следующие свойства: publi c class Saal {publi c UInt32 id; publi c имя строки; Publi c Int мест; } - Julian Kruste

Привязка данных WinForm основана на привязке к свойствам.

Измените определение Saal на:

public class Saal
{
    public UInt32 Id {get; set;}
    public string Name {get; set;}
    public int Seats {get; set;}
}
0 голосов
/ 07 апреля 2020

Даже если ваш список пуст, DataGridView автоматически создаст столбцы. Но можно деактивировать или манипулировать созданием столбца во время проектирования или выполнения.

Код конструктора может помочь нам.

Я предполагаю, что ваш список не пуст.

Вы можете попробовать это свойство AutoGenerateColumns через DataGridView, но по умолчанию это верно.

dgv_saele.AutoGenerateColumns = true;

https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.datagridview.autogeneratecolumns?view=netframework-4.8

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...