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

使用C#与Dapper/SQLite Core打印数据库全表及指定数据的问题

问题解决方法

问题根源是默认的ToString()方法行为:当你用Console.WriteLine打印自定义类GymEntry的实例时,C#会调用类的默认ToString()方法,该方法默认返回「命名空间+类名」,也就是你看到的解决方案名称加类名。而List.Count正确,说明数据已经成功从SQLite加载到列表中,只是打印方式不对。

下面是两种直接有效的解决方式:

方式一:重写GymEntry类的ToString()方法

在你的GymEntry类中添加ToString()的重写,自定义输出格式,这样直接打印对象时就会显示你需要的内容:

public class GymEntry
{
    // 对应数据库的id和date列的属性
    public int Id { get; set; }
    public DateTime Date { get; set; } // 若date是字符串类型则改为string Date

    // 重写ToString()方法
    public override string ToString()
    {
        // 根据需求格式化输出,示例:
        return $"ID: {Id}, 日期: {Date:yyyy-MM-dd}";
    }
}

修改后,原来的Console.WriteLine(entries[0]);就能直接输出ID和日期的具体值。

方式二:打印时直接访问对象属性

如果不想修改GymEntry类,可以在打印时直接指定要输出的属性:

打印单个条目

var firstEntry = entries[0];
Console.WriteLine($"ID: {firstEntry.Id}, 日期: {firstEntry.Date}");

打印全表数据

用foreach循环遍历列表,逐个打印属性:

foreach (var entry in entries)
{
    Console.WriteLine($"ID: {entry.Id}, 日期: {entry.Date}");
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 12:45:42