运算符 '<'不能应用于“object”类型的操作数;和“int”
我正在 ASP.NET 和 C# 中创建用户登录,但是在编写函数后,由于错误而无法编译。错误指出“运算符 '<'不能应用于类型为“object”和“int”的操作数”
我想检查 ExecuteNonQuery 的返回值是否大于 0。否则登录会失败。
该存储过程是在类的前面与已确认的数据库连接字符串一起创建的。
login.aspx.cs
public bool DBConnection(string strUserName, string strPassword)
{
SqlCommand myCommand = new SqlCommand("ValidateUser", _productConn);
myCommand.CommandType = CommandType.StoredProcedure;
SqlParameter objParam1 = default(SqlParameter);
SqlParameter objParam2 = default(SqlParameter);
SqlParameter objReturnParam = default(SqlParameter);
objParam1 = myCommand.Parameters.Add("@USERNAME", SqlDbType.VarChar);
objParam2 = myCommand.Parameters.Add("@PASSWORD", SqlDbType.VarChar);
objReturnParam = myCommand.Parameters.Add("@NUM_OF_USER", SqlDbType.Int);
objParam1.Direction = ParameterDirection.Input;
objParam2.Direction = ParameterDirection.Input;
objReturnParam.Direction = ParameterDirection.ReturnValue;
objParam1.Value = textUserName.Text;
objParam2.Value = textPassword.Text;
try
{
if (_productConn.State == ConnectionState.Closed)
{
_productConn.Open();
myCommand.ExecuteNonQuery();
}
//// ERROR HERE - I Want to check if the return value is greater than 0 ???
if (objReturnParam.Value < 1)
{
lblMessage.Text = "Invalid Login!";
}
else
{
return true;
}
_productConn.Close();
}
catch (Exception ex)
{
lblMessage.Text = "Error Connecting to Database!";
}
}
任何帮助将不胜感激,因为我对此一无所知。谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你必须强制转换 Value 因为它是一个对象
You have to cast the Value because it's an object
如前所述,值是对象类型。如果您确信它始终包含 int (而不是 DBNull.Value),则可以在比较之前将其强制转换为 int:
Value is, as stated, of type object. If you are confident that it always contains an int (and not, for example, DBNull.Value), you can cast it to int before the comparison:
如果 objReturnParam 为 null,则应使用 TryParse。
In case of objReturnParam being null, you should use TryParse.