大神们,帮帮忙啊,必须声明标量变量 "@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) --------------------编程问答--------------------
不对呢,这样的话,SqlParameter[] param就成了变量了,它本来是类型的嘛 --------------------编程问答-------------------- 应该是SqlDataReader reader = SQLHelper.ExecuteReader(SQLHelper.strCon, CommandType.Text, param)
补充:.NET技术 , C#