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