0

我正在尝试验证一个电子邮件地址,用户在其中输入他们想要的电子邮件以便他们创建一个帐户,如果数据库中行的大小大于 0,那么电子邮件已经创建,如果不是,那么大小应该为零.

但是我的 int 大小不会捕获零值,而只会返回“位置 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;
            }
        }```
4

1 回答 1

0

您可以将 SQL 重写为:

String sql = "SELECT count(*) FROM Users WHERE EmailAddress = '" + emailaddress + "' ";

这样,它将返回一个整数,您只需检查返回的整数是否大于 0。

当找不到匹配项时,您的原始 SQL 返回一个空结果,这就是您看到该错误的原因。

在 SQL 中使用 count(*) 可以避免这种情况。

于 2021-03-23T02:44:06.593 回答