黑马程序员技术交流社区
标题:
未将对象引用设置到对象的实例。 求解决办法
[打印本页]
作者:
茹化肖
时间:
2013-11-21 15:44
标题:
未将对象引用设置到对象的实例。 求解决办法
本帖最后由 茹化肖 于 2013-11-21 16:04 编辑
<div class="blockcode"><blockquote>UI层的代码
protected void btnlogin_Click(object sender, EventArgs e)
{
UserInfo user = new UserInfo();
user.UserName = txtusername.Text.Trim();
user.UserPwd = Txtpwd.Text.Trim();
if (!BLL.LoginCheck(user))
{
Response.Write("<script>alert('Username or Pwd ERROR!');</script>");
}
else
{
Response.Write("<script>alert('success!');</script>");
Response.Redirect("~/UIQ/Contentlist1.aspx");
}
复制代码
/// <summary>
///BLL 业务逻辑层,静态方法,
/// </summary>
public class BLL
{
//登陆查询是否存在该用户
public static bool LoginCheck(UserInfo user)
{
DAL dal = new DAL();
if (user.UserName == "" || user.UserPwd == "")
return false;
else
{
if ((int)dal.SelectByName(user) > 0)//这句报错 ,dal 的值为NULL
return true;
else
return false;
}
}
}下面给另外 selectByName 的代码
public object SelectByName(UserInfo user)
{
string sql = string.Format("select count(*) from UserInfo where username={0}", user.UserName);
return SqlHelper.ExecuteScalar(sql);
}
复制代码
下面是 sqlHelper 的代码
public static object ExecuteScalar(string sql, params SqlParameter[] cmdParams)//查询返回第一行第一列 object
{
SqlCommand cmd = new SqlCommand(sql, conn);
foreach (SqlParameter parm in cmdParams)
{
cmd.Parameters.Add(parm);
}
try
{
conn.Open();
object o = cmd.ExecuteScalar();
return o;
}
catch
{
return null;
}
finally
{
cmd.Dispose();
conn.Close();
conn.Dispose();
}
}
复制代码
请各位给指导下 这个值为null 的时候 怎么排错?
作者:
茹化肖
时间:
2013-11-21 16:11
问题解决了 ,sql语句的里面{0} 少加引号
作者:
u010209195
时间:
2013-11-21 18:59
茹化肖 发表于 2013-11-21 16:11
问题解决了 ,sql语句的里面{0} 少加引号
版主,怎么不使用Using了,:D
作者:
茹化肖
时间:
2013-11-21 21:34
u010209195 发表于 2013-11-21 18:59
版主,怎么不使用Using了,
做三层的时候,一般在数据库层的时候大部分的都是try catch ,也是为了 每层的错误都不报给别的层吧。这里的using可以释放连接。但是我不是每个都写了关闭连接了么?所以应该没太多区别吧。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2