You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF DataGrid绑定MS Access表仅显示列头无法加载数据求助

问题原因

你漏了调用表适配器的Fill方法把Access数据库的实际数据加载到DataSet的对应表中。设计器预览时工具会自动调用填充逻辑,但运行时需要你手动执行这一步,所以你当前LINQ查询的是内存里的空表,返回结果没有数据,DataGrid只会根据投影的匿名类型属性生成列头,没有实际行数据展示。

修复方案

  1. 先找到你创建强类型DataSet时自动生成的PROCESS_SCHEDULES表对应的TableAdapter类
  2. 在执行LINQ查询前,先实例化TableAdapter并调用Fill方法填充DataSet
  3. 原有的查询和绑定逻辑保持不变即可

修复后的完整代码示例:

// 替换YourDataSetName为你实际的数据集类名
var scheduleAdapter = new YourDataSetNameTableAdapters.PROCESS_SCHEDULESTableAdapter();
// 填充数据到DataSet的PROCESS_SCHEDULES表
scheduleAdapter.Fill(dataSet.PROCESS_SCHEDULES);

// 原有逻辑不变
var query = from ps in dataSet.PROCESS_SCHEDULES                        
            orderby ps.SCHEDULE_NAME
            select new { ps.SCHEDULE_NAME, ps.PROCESS_NAME, ps.DAY_OF_MONTH, ps.DAY_OF_WEEK, ps.START_TIME, ps.END_TIME, ps.STATUS, ps.STATUS_TM, ps.PARALLEL, ps.MINUTES_BEFORE_REPEAT, ps.ENABLED, ps.ERR_NUM };

processScheduleGrid.ItemsSource = query.ToList();

可选优化

如果你不需要过滤字段,也可以直接绑定DataView,代码更简洁:

var scheduleAdapter = new YourDataSetNameTableAdapters.PROCESS_SCHEDULESTableAdapter();
scheduleAdapter.Fill(dataSet.PROCESS_SCHEDULES);
processScheduleGrid.ItemsSource = dataSet.PROCESS_SCHEDULES.DefaultView;

内容的提问来源于stack exchange,提问作者Matthew Swaringen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 13:57:03