簡體   English   中英

c# 在 DataGridView 中顯示訪問數據庫

[英]c# display Access Database in DataGridView

首先,這是我的代碼:

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 數據庫中的數據。 我的代碼沒有錯誤消息,但每次我嘗試打開數據網格視圖時,它都是空的。

你的代碼片段看起來不錯。 我看不到任何明顯的問題。

嘗試在方法的末尾放置斷點並檢查數據表是否包含行和行是否包含 ItemArray 中的任何值。

確保您的data_example DataGridView 控件設置為AutoGenerateColumns = true (默認)並檢查您沒有為您的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;  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM