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

phoneball 2013-10-24 02:12:12
源代码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;


}
}
}
}





...全文
185 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
humiailinxue 2013-10-24
  • 打赏
  • 举报
回复
应该是SqlDataReader reader = SQLHelper.ExecuteReader(SQLHelper.strCon, CommandType.Text, param)
phoneball 2013-10-24
  • 打赏
  • 举报
回复
引用 7 楼 humiailinxue 的回复:
SqlDataReader reader = SQLHelper.ExecuteReader(SQLHelper.strCon, CommandType.Text, sql) 应该写成 SqlDataReader reader = SQLHelper.ExecuteReader(SQLHelper.strCon, CommandType.Text, SqlParameter[] param)
不对呢,这样的话,SqlParameter[] param就成了变量了,它本来是类型的嘛
humiailinxue 2013-10-24
  • 打赏
  • 举报
回复
SqlDataReader reader = SQLHelper.ExecuteReader(SQLHelper.strCon, CommandType.Text, sql) 应该写成 SqlDataReader reader = SQLHelper.ExecuteReader(SQLHelper.strCon, CommandType.Text, SqlParameter[] param)
kevin87923 2013-10-24
  • 打赏
  • 举报
回复
细心啊。。
小K的大师兄 2013-10-24
  • 打赏
  • 举报
回复
这是个奇葩的写法,写了参数,在执行时都没用到参数。
air123456789 2013-10-24
  • 打赏
  • 举报
回复
SqlDataReader reader = SQLHelper.ExecuteReader(SQLHelper.strCon, CommandType.Text, sql) 应该还有个传SqlParameter[]的参数吧? 你 param 都没传进去。
lhx527099095 2013-10-24
  • 打赏
  • 举报
回复
你参数都没有用到啊。。。。。 光造了个参数 没用。。。。。
phoneball 2013-10-24
  • 打赏
  • 举报
回复
模型层 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; } } }
phoneball 2013-10-24
  • 打赏
  • 举报
回复
逻辑层 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); } } }

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧