[英]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.