如何使用存储过程实现不同角色登录(急)
那位大哥教教小弟,小弟是新手如何使用这样的存储过程实现正确的用户登录ALTER PROCEDURE AdminLogin
@AdminID bigint , @AdminPassWord nvarchar(10), @Isvalid int OUTPUT
AS
IF(SELECT COUNT(*) FROM 系统管理员信息表 WHERE 系统管理员账号 = @AdminID AND 密码
= @AdminPassWord) = 1
/*存在*/
SELECT @Isvalid = 1
ELSE
/*不存在*/
SELECT @Isvalid= 0
--------------------编程问答-------------------- 你不是写出来存储过程了吗
你的Isvalid 是输出参数
在代码中,在获取这个值,你不就可以判断身份了
看看存储过程的调用吧 --------------------编程问答-------------------- 具体怎么用存储过程我都不会....请大哥赐教 --------------------编程问答--------------------
//连接字符串。里面你改下--------------------编程问答-------------------- 完整代码! --------------------编程问答--------------------
string strConn = "Data Source=.;uid=sa;pwd=wzb0227;Integrated Security=SSPI;Initial Catalog=Evaluation;Integrated Security=True";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
SqlCommand comm = new SqlCommand("getCountNum", conn);
comm.CommandType = CommandType.StoredProcedure;//存储过程
SqlParameter para = new SqlParameter(" @Isvalid ", SqlDbType.Int);//你的那个输出参数
para.Direction = ParameterDirection.Output;
comm.Parameters.Add(para);
comm.ExecuteNonQuery();
int count = (int)comm.Parameters["@Isvalid"].Value;
if (count == 1)
{
//管理员
}
conn.Close();
SqlCommand comm = new SqlCommand("AdminLogin", con);
comm.CommandType = CommandType.StoredProcedure;
SqlParameter Uname = new SqlParameter("@AdminID", SqlDbType.NChar, 10);
Uname.Value = UserName;
comm.Parameters.Add(Uname);
SqlParameter Upass = new SqlParameter(" @AdminPassWord", SqlDbType.NVarChar, 10);
comm.Parameters.Add(Upass);
SqlParameter Uyanzh = new SqlParameter("@Isvalid", SqlDbType.Int);
comm.Parameters.Add(Uyanzh);
Uyanzh.Direction = ParameterDirection.Output;
int count = (int)comm.Parameters["@Isvalid"].Value;
comm.ExecuteNonQuery();
if (count == 1)
{
Response.Write("CH");
con.Close();
}
else
{
Response.Write("cw");
con.Close();
}
这个样子为什么还不对呢 --------------------编程问答-------------------- SqlParameter Uname = new SqlParameter("@AdminID", SqlDbType.NChar, 10);
这里
@AdminID bigint
这里
看看撒 --------------------编程问答-------------------- 数据库里面 定义就是那样的..应该要保持一致吧 --------------------编程问答--------------------
你储存过程中@AdminID为 bigint,上面@AdminID为Nchar肯定出错啊。 --------------------编程问答-------------------- 不是应该,是必须吧 --------------------编程问答-------------------- 现在是这个错误 Object reference not set to an instance of an object.
提示的是:
Line 72: comm.Parameters.Add(Uyanzh);
Line 73: Uyanzh.Direction = ParameterDirection.Output;
Line 74: int count = (int)comm.Parameters["@Isvalid"].Value;
Line 75: comm.ExecuteNonQuery();
Line 76: if (count == 1)
的第74行 --------------------编程问答--------------------
佩服,错误一直有啊
未将对象引用设置到对象的实例
有值么?跟踪下看看! --------------------编程问答-------------------- 什么意思 ? --------------------编程问答--------------------
晕倒!!下断点啊
提示错误是未将对象引用设置到对象的实例
就是没有值
在这句“int count = (int)comm.Parameters["@Isvalid"].Value;
”按F9然后再运行,你再看看count的值是?? --------------------编程问答-------------------- 托管”已退出,返回值为 0 (0x0) 这个吗? --------------------编程问答-------------------- --------------------编程问答-------------------- 哎,我去找个白菜去吃 --------------------编程问答-------------------- 哎.我自己都觉得丢人呀,选了软件工程这个专业两年来就没好好上过课.上学期C#还挂科,这学期学习ASP.NET期末才考70多分,这次参加了学校的一个系统网站,一直没练过手...这次跟着做这个..真是洋相出尽,丢光了脸...请各位大哥为小弟,指明前方的道路
补充:.NET技术 , ASP.NET