我想检查主题代码和主题名称是否为空字符串或空值,以便主题代码和主题名称的空字符串不会存储在数据库中。我是C#的新手。代码有误。它说不能从布尔转换为字符串。我尝试了很多方法,但错误仍然存在。修复了从bool转换为字符串的错误后,它返回了一个Not Found
错误。我应该如何更改return NotFound()
错误?
public IHttpActionResult PostAddSubjectCode([FromBody] ConfigSubjectCode SubjectCodes)
{
string Subject_Code = SubjectCodes.Subject_Code;
string Subject_Name = SubjectCodes.Subject_Name;
if (String.IsNullOrEmpty(Subject_Code) && String.IsNullOrEmpty(Subject_Name))
{
return NotFound();
}
else
{
string sql = "INSERT INTO[dbo].[GEO_SUBJECT_CODES] ([Subject_Code],[Subject_Name_BY_CLASS]) VALUES " +
"('" + Subject_Code + "', '" + Subject_Name + "');";
DBConnection dbConnection = new DBConnection();
dBConnection.UpdateTable(sql);
return Ok();
}
}
答案 0 :(得分:0)
错误完全准确地指出了问题所在:问题是:您正在将boolean
(Subject_Code == "" && Subject_Name == ""
)传递给String.IsNullOrEmpty
,而预期{ 1}}
您正在为要检查的变量设置空字符串,从而使string
检查毫无意义
您的SQL可供开放使用
强烈建议:Getting started with ASP.NET MVC 5,它还将提供指向较新的if
示例的链接。
我将其保留在这里,因为我们有一个讨论线索并指出了所列出的问题。
Core
在模型中查看DataAnnotations [Required]而不是-您将同时获得服务器端和客户端的验证。我强烈建议您阅读大量的教程,而不是零碎的东西。
答案 1 :(得分:-1)
根据上面的代码,您尝试将布尔值与字符串值进行比较,这会给您带来错误,请尝试以下解决方案。
@IBAction func LeaveUnwindSeque(segue: UIStoryboardSegue){
}
注意:这是针对OP问题的快速解决方案,而不是最佳实践。
答案 2 :(得分:-1)
由于您的if/else
都返回了,所以它永远不会到达实际的更新代码。而且,您将两个变量都分配给了一个固定的空字符串,这在任何情况下都不会导致if/else
起作用。您想要这样的东西:
public IHttpActionResult PostAddSubjectCode([FromBody] ConfigSubjectCode SubjectCodes)
{
string Subject_Code = SubjectCodes.Subject_Code; // these can't be fixed ""
string Subject_Name = SubjectCodes.Subject_Name; // these can't be fixed ""
if (String.IsNullOrEmpty(Subject_Code) && String.IsNullOrEmpty(Subject_Name))
{
return NotFound();
}
else
{
string sql = "INSERT INTO[dbo].[GEO_SUBJECT_CODES] ([Subject_Code],[Subject_Name_BY_CLASS]) VALUES " +
"('" + Subject_Code + "', '" + Subject_Name + "');";
DBConnection dBConnection = new DBConnection();
dBConnection.UpdateTable(sql);
return Ok();
}
}