如何在C#中的DataTable中显示Access数据
本文关键字:显示 Access 数据 DataTable 中的 | 更新日期: 2023-09-27 18:25:40
我是C#的新手。在DataTable中显示Access数据时遇到困难。这是代码:
try
{
reader.Read();
for (int i = 0; i < 16; i++)
{
if (selectedCourse == reader["CourseName"].ToString())
{
match = true;
}
else
{
match = false;
}
}
if (match == true)
{
tabControl.SelectedTab = tabPage1; // opens results page
string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:'Users'...454_Database.accdb";
DataTable results = new DataTable();
using (OleDbConnection conn = new OleDbConnection(connString))
{
OleDbCommand cmd = new OleDbCommand("Select c.PeriodID, c.CourseName, c.Teacher, t.Room"
+ "FROM Courses c JOIN Teacher t ON t.TeacherID = c.TeacherID"
+ "WHERE [CourseName] ='" + cboxClass.Text + "'", conn);
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
adapter.Fill(results);
dataTblResults.DataSource = results;
我可以判断出数据正在与数据库进行比较,它可以正确地确定查询是否有结果。但是,当有结果时,它们不会显示在数据表上。是因为它不知道哪些列对应于数据表中的列吗?
提前感谢!
如何配置数据网格?
尝试设置:(在设置DataSource之前)
dataTblResults.AutoGenerateColumns = true;
dataTblResults.DockStyle.Fill = DockStyle.Fill;
请先尝试使用数据集。然后将其转换为数据表
DataSet ds = new DataSet();
adapter.fill(ds)
if (ds.Tables[0].Rows.Count >= 1)
{
results = ds.Tables[0];
}
dataTblResults.DataSource = results;
我不认为这是你想要的,但也许它会让你更接近答案