如何在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; 

我可以判断出数据正在与数据库进行比较,它可以正确地确定查询是否有结果。但是,当有结果时,它们不会显示在数据表上。是因为它不知道哪些列对应于数据表中的列吗?

提前感谢!

如何在C#中的DataTable中显示Access数据

如何配置数据网格?

尝试设置:(在设置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;

我不认为这是你想要的,但也许它会让你更接近答案