使用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
相关产品推荐
相关产品推荐

