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

