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

C# WinForms中DataGridView无法按日期倒序显示accdb最新15条记录

解决DataGridView显示Access最新15条记录并倒序的问题

你的核心问题出在SQL查询语句上:

  • 未指定倒序排序,order by Date默认是升序(从旧到新);
  • Date是Access的保留关键字,直接使用可能引发语法冲突,建议用方括号包裹。

修正后的查询代码

把原SQL语句修改为:

void fillgrid()
{
    con.Open();
    // 用[Date]避免关键字冲突,加DESC实现倒序,取最新15条
    OleDbDataAdapter da = new OleDbDataAdapter("select top 15 * from Records order by [Date] DESC", con);
    DataTable dt = new DataTable();
    da.Fill(dt);
    dataGridView2.DataSource = dt;
    con.Close();
}

为什么数据库内调整排序无效?

Access表的默认排序仅在直接打开表时生效,通过OleDb执行查询时,DataGridView完全依赖SQL语句返回的结果顺序,不会读取表的默认排序设置。必须在查询语句中明确指定order by ... DESC才能得到倒序结果。

额外优化建议

为避免连接资源泄漏,推荐使用using语句自动管理连接对象:

void fillgrid()
{
    // using会自动释放连接,无需手动Close
    using (OleDbConnection tempCon = new OleDbConnection(con.ConnectionString))
    {
        tempCon.Open();
        OleDbDataAdapter da = new OleDbDataAdapter("select top 15 * from Records order by [Date] DESC", tempCon);
        DataTable dt = new DataTable();
        da.Fill(dt);
        dataGridView2.DataSource = dt;
    }
}

内容的提问来源于stack exchange,提问作者Remaker Shadow

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 10:42:04