c# отображение базы данных Access в DataGridView - PullRequest
0 голосов
/ 06 мая 2020

Прежде всего, вот мой код:

private void Form5_Load(object sender, EventArgs e)
{
    string strProvider = @"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = c:\Users\name\Documents\myprogramms\example.accdb";
    string strSql = "Select * from score";
    OleDbConnection con = new OleDbConnection(strProvider);
    OleDbCommand cmd = new OleDbCommand(strSql, con);
    con.Open();
    cmd.CommandType = CommandType.Text;
    OleDbDataAdapter da = new OleDbDataAdapter(cmd);
    DataTable scores = new DataTable();
    da.Fill(scores);
    data_example.DataSource = scores;
}

Моя цель - отобразить данные из базы данных MS Access. В моих кодах нет сообщений об ошибках, но каждый раз, когда я пытаюсь открыть Data Grid View, он полностью пуст.

1 Ответ

1 голос
/ 06 мая 2020

ваш фрагмент кода выглядит хорошо. Я не вижу очевидной проблемы.

Попробуйте поставить точку останова в конце вашего метода и проверьте, содержит ли datatable строки, а строки содержат какие-либо значения в ItemArray.

Убедитесь, что ваш data_example DataGridView для элемента управления AutoGenerateColumns = true (по умолчанию) установлено значение *1006* (по умолчанию) и убедитесь, что для элемента управления data_example DataGridView не определен другой источник данных. Этот код мне подходит.

private void Form1_Load(object sender, EventArgs e)
{
    data_example.AutoGenerateColumns = true;

    string strProvider = @"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = c:\aaa\CinemaBooking.accdb";
    string strSql = "Select * from Booking";

    using (OleDbConnection con = new OleDbConnection(strProvider))
    {
        using (OleDbCommand cmd = new OleDbCommand(strSql, con))
        {
            using (OleDbDataAdapter da = new OleDbDataAdapter(cmd))
            {
                con.Open();
                var scores = new DataTable();
                da.Fill(scores);
                data_example.DataSource = scores.DefaultView;
                con.Close();
            }
        }
    }
}

Возможно, вы можете попробовать заполнить набор данных адаптером, а затем использовать именованную таблицу в качестве источника данных:

var dtSet = new DataSet();  
da.Fill(dtSet, "Booking");  
data_example.DataSource = dtSet.Tables["Booking"].DefaultView;  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...