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

如何将MySqlDataReader读取结果转换为List<DateTime>集合

嘿,我来帮你搞定这两个问题:

问题一:将MySQL读取的日期数据存入List集合

你现在的代码已经能读取到dates列的字符串了,只需要在循环里把这些字符串解析成DateTime对象,再添加到List里就行。这里推荐用TryParseExact来解析,比直接用ParseExact更安全,能避免格式不匹配导致的异常。修改后的代码如下:

// 别忘了引用这两个命名空间
using System.Collections.Generic;
using System.Globalization;

public void db() 
{ 
    string connString = "Server=localhost;Database=test;Uid=root;Pwd='';SslMode=none"; 
    // 提前初始化DateTime集合
    List<DateTime> dateList = new List<DateTime>();
    
    using (MySqlConnection mcon = new MySqlConnection(connString)) 
    using (MySqlCommand cmd = mcon.CreateCommand()) 
    { 
        mcon.Open(); 
        cmd.CommandText = "SELECT dates FROM abctable"; 
        
        using (MySqlDataReader reader = cmd.ExecuteReader()) 
        { 
            while (reader.Read()) 
            { 
                // 获取dates列的字符串值
                string dateStr = reader.GetString(reader.GetOrdinal("dates"));
                
                // 解析字符串为DateTime,格式匹配你的日期格式yyyyMMdd
                if (DateTime.TryParseExact(dateStr, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate))
                {
                    dateList.Add(parsedDate);
                    // 同时可以按你需要的格式更新result.Text
                    result.Text += parsedDate.ToString("yyyy-MM-dd") + "\n";
                }
                else
                {
                    // 处理解析失败的情况,比如记录错误信息
                    result.Text += $"⚠️ 无法解析日期:{dateStr}\n";
                }
            } 
        } 
    } 
    // 现在dateList里就存放了所有解析成功的DateTime对象,后续可以直接使用啦
}

几个关键点说明:

  • 提前初始化List<DateTime>,避免在循环里重复创建集合
  • 使用TryParseExact可以优雅处理格式不符合的异常情况,不会让程序崩溃
  • 记得引用System.Globalization命名空间,否则CultureInfo会报错
问题二:NuGet包无法下载的问题

虽然看不到你的截图,但NuGet下载失败是很常见的问题,给你几个通用的解决办法:

  • 检查NuGet源配置:
    打开Visual Studio的「工具」→「NuGet包管理器」→「包管理器设置」,在「程序包源」里确认官方NuGet源(https://api.nuget.org/v3/index.json)是启用状态,如果没有的话就手动添加这个地址。
  • 清理NuGet缓存:
    在包管理器设置的「常规」选项卡,点击「清除所有NuGet缓存」,清理完后重启Visual Studio再尝试下载。
  • 排查网络问题:
    有时候代理、防火墙或者公司内网会阻止访问NuGet服务器,你可以试试关闭代理、切换到家用网络,或者检查防火墙是否允许Visual Studio访问网络。
  • 手动下载安装:
    如果以上方法都不行,去NuGet官网搜索你需要的包,下载.nupkg文件,然后在Visual Studio里添加本地源:右键项目→「管理NuGet程序包」→「浏览」右上角的齿轮→「本地源」添加存放.nupkg的文件夹,再从本地源安装包。
  • 更新Visual Studio:
    旧版本的Visual Studio可能对新的NuGet协议支持不好,尝试更新到最新的稳定版再试试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:49:16