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

大神们,帮帮忙啊,必须声明标量变量 "@username"

源代码using System;
using System.Collections.Generic;
using System.Text;
using Model;
using System.Data;
using System.Data.SqlClient;


namespace DAL
{
    public class UserService
    {
      
       
                 //声明SQL语句变量,方便使用
          private const string sql = "select * from tb_Admin where username=@username and password=@password";
                //实例化模型
          private User FillModel(SqlDataReader reader)
             {
            User admin = new User();
            admin.Id = Convert.ToInt32(reader["Id"]);
            admin.UserName1 = reader.GetString(1);
            admin.PassWord1 = reader.GetString(2);
            return admin;
             }
               //查询方法,查询管理员的账号和密码
        public User adminlogin(User login)
        {
            SqlParameter[] param ={new SqlParameter("@username",login.UserName1),
                                     new SqlParameter("@password",login.PassWord1)};
            using (SqlDataReader reader = SQLHelper.ExecuteReader(SQLHelper.strCon, CommandType.Text, sql))
            {
                User result = null;
                try
                {
                    if (reader != null)
                    {
                        if (reader.Read())
                        {
                            result = FillModel(reader);
                        }
                    }
                }
                catch (Exception)
                {
                }
                finally
                {
                    reader.Close();
                }
                return result;
  

             }
        }
    }
}

        
            
    

--------------------编程问答-------------------- 逻辑层
using System;
using System.Collections.Generic;
using System.Text;
using Model;
using DAL;

namespace BLL
{
    public class UserManager
    {
        private UserService service = new UserService();//实例化数据层
        public User adminlogin(User admin)//利用模型层
        {
            if ((string.IsNullOrEmpty(admin.UserName1) || (string.IsNullOrEmpty(admin.PassWord1))))//判断用户名和密码是否合法
            {
                return null;
            }
            return service.adminlogin(admin);  
        }
    }
}
--------------------编程问答-------------------- 模型层
using System;
using System.Collections.Generic;
using System.Text;

namespace Model
{
    public class User
    {
        public int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private string UserName;

        public string UserName1
        {
            get { return UserName; }
            set { UserName = value; }
        }
        private string PassWord;
        private string name;
        private string psw;
        public string PassWord1
        {
            get { return PassWord; }
            set { PassWord = value; }
        }
        public User() { }//无参构造函数

        public User(string name, string psw)//有餐构造函数
        {
           
            this.UserName1 = name;
            this.PassWord1 = psw;
        }

      
      
    }
}
--------------------编程问答-------------------- 你参数都没有用到啊。。。。。
光造了个参数 没用。。。。。 --------------------编程问答-------------------- SqlDataReader reader = SQLHelper.ExecuteReader(SQLHelper.strCon, CommandType.Text, sql) 应该还有个传SqlParameter[]的参数吧? 你 param 都没传进去。 --------------------编程问答-------------------- 这是个奇葩的写法,写了参数,在执行时都没用到参数。 --------------------编程问答-------------------- 细心啊。。 --------------------编程问答-------------------- SqlDataReader reader = SQLHelper.ExecuteReader(SQLHelper.strCon, CommandType.Text, sql) 应该写成 SqlDataReader reader = SQLHelper.ExecuteReader(SQLHelper.strCon, CommandType.Text, SqlParameter[] param) --------------------编程问答--------------------
引用 7 楼 humiailinxue 的回复:
SqlDataReader reader = SQLHelper.ExecuteReader(SQLHelper.strCon, CommandType.Text, sql) 应该写成 SqlDataReader reader = SQLHelper.ExecuteReader(SQLHelper.strCon, CommandType.Text, SqlParameter[] param)

不对呢,这样的话,SqlParameter[] param就成了变量了,它本来是类型的嘛 --------------------编程问答-------------------- 应该是SqlDataReader reader = SQLHelper.ExecuteReader(SQLHelper.strCon, CommandType.Text,  param)
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,