当前位置:编程学习 > C#/ASP.NET >>

如何使用存储过程实现不同角色登录(急)

那位大哥教教小弟,小弟是新手如何使用这样的存储过程实现正确的用户登录
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肯定出错啊。 --------------------编程问答--------------------
引用 7 楼 ddownwind 的回复:
数据库里面 定义就是那样的..应该要保持一致吧
不是应该,是必须吧 --------------------编程问答-------------------- 现在是这个错误 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行 --------------------编程问答--------------------
引用 10 楼 ddownwind 的回复:
现在是这个错误 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.Para……

佩服,错误一直有啊
未将对象引用设置到对象的实例
有值么?跟踪下看看! --------------------编程问答-------------------- 什么意思 ? --------------------编程问答--------------------
引用 12 楼 ddownwind 的回复:
什么意思 ?

晕倒!!下断点啊
提示错误是未将对象引用设置到对象的实例
就是没有值
在这句“int count = (int)comm.Parameters["@Isvalid"].Value;
”按F9然后再运行,你再看看count的值是?? --------------------编程问答--------------------  托管”已退出,返回值为 0 (0x0)  这个吗? --------------------编程问答-------------------- --------------------编程问答-------------------- 哎,我去找个白菜去吃 --------------------编程问答-------------------- 哎.我自己都觉得丢人呀,选了软件工程这个专业两年来就没好好上过课.上学期C#还挂科,这学期学习ASP.NET期末才考70多分,这次参加了学校的一个系统网站,一直没练过手...这次跟着做这个..真是洋相出尽,丢光了脸...请各位大哥为小弟,指明前方的道路
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,