【问题标题】:How to display Access data in a DataTable in C#?如何在 C# 中的 DataTable 中显示 Access 数据?
【发布时间】:2015-12-05 01:35:06
【问题描述】:

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

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

提前致谢!

【问题讨论】:

  • 您使用的是 DataGridView 吗?您可能不正确地更改了 DataGridView 中的某些参数。我会删除 DataGridView 并将新的 DGV 添加到将使用默认设置的表单。

标签: c# winforms datatable


【解决方案1】:

您的数据网格是如何配置的?

尝试设置:(设置DataSource之前)

dataTblResults.AutoGenerateColumns = true;
dataTblResults.DockStyle.Fill = DockStyle.Fill;

【讨论】:

    【解决方案2】:

    首先尝试使用数据集。然后转成数据表

    DataSet ds = new DataSet();
    adapter.fill(ds)
    
    if (ds.Tables[0].Rows.Count >= 1)
                        {
                            results = ds.Tables[0];
                        }
    
    dataTblResults.DataSource = results;
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-17
      • 2018-04-26
      • 1970-01-01
      • 2017-12-17
      • 1970-01-01
      • 2021-10-31
      • 1970-01-01
      相关资源
      最近更新 更多