C#高手,请救命

来源:百度知道 编辑:UC知道 时间:2024/06/19 04:11:06
if (Convert.ToDouble(cmd.Parameters["@m"].Value) < 0) 这个判断有点问题,比如说数据表里存放着账号A 为什么我输入AAAAAAAAA 这样也能进去阿
{
MessageBox.Show("帐号或密码错误"); return;
}
else if (Convert.ToDouble(cmd.Parameters["@m"].Value) == 0 && Convert.ToInt32(cmd.Parameters["@b"].Value) == 0)权限判断
form8.Show();
else if (Convert.ToDouble(cmd.Parameters["@m"].Value) == 0 && Convert.ToInt32(cmd.Parameters["@b"].Value) == 1)权限判断
form1.Show();
this.Hide();
这个是存储过程
CREATE PROCEDURE pd_name @userName nvarchar,@userPass nvarchar,@m int output,@b int output
as select @m=count(*)-'1' from name where 用户名=@userName and 密码=@userPass
select @b=count(*) from name where 用户名=@userName and 权限='1'
RETURN @m
RETURN @b
GO
那还是不对阿,我要是按照规定字节限制,我输入2个A

是楼主的存储过程有问题,楼主的存储过程经过测试吗?将你存储过程中的参数类型为nvarchar的加上长度,如:@userName nvarchar(10),存储过程中参与计算的对象最好类型一致,如count(*)-'1' 就不一致了,应该是count(*)-1.