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

C# WinForms中解决‘Course name cannot be empty.’参数错误求助

解决“课程名称不能为空(参数'courseName')”错误遇到的问题

我正在解决**“Course name cannot be empty. (Parameter 'courseName')”**错误,目前用C#开发WinForms应用,需要获取用户输入信息并存入XAMPP数据库,但尝试多种方案后仍未解决。我已按照建议修改代码,不过依旧无法解决,以下是相关代码:

private string GetTableName(string courseName)
{
    // 去除课程名称前后空白字符
    string trimmedCourse = courseName?.Trim();

    // 检查去除空白后的课程名称是否为空或null
    if (string.IsNullOrEmpty(trimmedCourse))
    {
        throw new ArgumentException("课程名称不能为空。", nameof(courseName));
    }

    HashSet<string> validCourseNames = new HashSet<string>(StringComparer.OrdinalIgnoreCase)
    {
        "BSIT",
        "BSCS",
        "ACT",
        "BSE"
    };
    // 检查去除空白后的课程名称是否在有效列表中
    if (validCourseNames.Contains(trimmedCourse))
    {
        return trimmedCourse;
    }
    else
    {
        throw new ArgumentException("无效的课程名称。", nameof(courseName));
    }   
}

排查方向建议

  • 确认调用GetTableName时传入的courseName参数值:检查用户输入控件(如TextBox)的Text属性是否正确获取,是否存在控件绑定错误、读取时机过早(用户未输入就读取)的情况。
  • 替换空值判断逻辑:原代码用string.IsNullOrEmpty,无法覆盖用户输入全空白字符(如多个空格)的场景,建议改用string.IsNullOrWhiteSpace:
    if (string.IsNullOrWhiteSpace(trimmedCourse))
    {
        throw new ArgumentException("课程名称不能为空。", nameof(courseName));
    }
    
  • 检查调用GetTableName前的参数流转:确认是否有代码意外将courseName置空,比如变量赋值错误、数据传递过程中丢失值。
  • 核对数据库操作前置逻辑:确保在调用该方法前,已有前置校验拦截空值输入,避免空值流入方法触发异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 09:30:03