簡體   English   中英

如何在C#中的DataTable中顯示Access數據?

[英]How to display Access data in a DataTable in C#?

我是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; 

我可以說數據正在與數據庫進行比較,它可以正確確定查詢是否有結果。 但是,當有結果時,它們不會顯示在數據表上。 是因為它不知道哪些列對應於數據表中的列?

提前致謝!

您的datagrid如何配置?

嘗試設置:(在設置數據源之前)

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;

我不認為這是您想要的,但也許會讓您更貼近答案

暫無
暫無

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

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