我正在尝试验证一个电子邮件地址,用户在该地址中输入他们想要的电子邮件以创建帐户,如果数据库中的行大小大于0,则表示电子邮件已经创建,如果不是,则大小应为零。
但我的int大小不会捕获零值,只返回"0";在位置0"处没有行;。我该怎么解决这个问题?
这是我的代码
{
String sql = "SELECT * FROM Users WHERE EmailAddress = '" + emailaddress + "' ";
DataSet mydata = dbConnect.GetDataSet(sql);
int size = Int32.Parse(mydata.Tables[0].Rows[0]["UserId"].ToString());
if (size > 0)
{
return false;
}
else {
return true;
}
}```
您可以将SQL重写为:
String sql = "SELECT count(*) FROM Users WHERE EmailAddress = '" + emailaddress + "' ";
这样,它将返回一个整数,您只需检查返回的整数是否大于0。
当找不到匹配项时,原始SQL返回一个空结果,这就是您看到该错误的原因。
在SQL中使用count(*(可以避免这种情况。