首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

初学者请问个有关问题,小弟我认为代码每有有关问题

2012-08-22 
菜鸟请教个问题,我认为代码每有问题。请教高手using Systemusing System.Configurationusing System.Data

菜鸟请教个问题,我认为代码每有问题。请教高手


using System;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class _Default : System.Web.UI.Page 
{
  protected void Page_Load(object sender, EventArgs e)
  {
  if (CookieHelper_Cai.HaveCookie("WaterFee", "Uname"))
  {
  Response.Redirect("HomeS.aspx");
  }
  else
  { 
   
  }
  }

  protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
  {
  string names = "";
  string pwd = "", ip = "";
  names = this.UnameS.Text.Trim();
  pwd = this.Pawd.Text.Trim();
   
  if (!string.IsNullOrEmpty(names) && !string.IsNullOrEmpty(pwd))
  {
  ip = RequestSafe_Cai.GetIP();
  pwd = MD5_Cai.Encrypt(pwd);
  if (AdminUserSExecutSqlS.Admin_User_LoginIn(names, pwd, ip))
  {
  DataTable dt = new DataTable();
  dt = AdminUserSExecutSqlS.Admin_User_ShowOneByUname(names);
  if (dt != null)
  {
  if (dt.Rows.Count > 0)
  {
  CookieHelper_Cai.AddCookie("WaterFee", "Uname", names, 1);
  CookieHelper_Cai.AddCookie("WaterFee", "Uid", dt.Rows[0]["ad_ID"].ToString(), 1);
  CookieHelper_Cai.AddCookie("WaterFee", "Utruename", System.Web.HttpUtility.UrlEncode(dt.Rows[0]["ad_userTrueName"].ToString()), 1);
  Response.Redirect("Default.aspx");
  }
  else
  {
  JSscript.AlertAndGoTo("用户名密码正确,但未设定真实姓名,请联系管理员", "Default.aspx");
  Response.End();
  }
  }
  else
  {
  JSscript.AlertAndGoTo("用户名密码正确,但未设定真实姓名,请联系管理员", "Default.aspx");
  Response.End();
  }
  }
  else
  {
  JSscript.AlertAndGoTo("登录失败,可能用户名密码不正确", "Default.aspx");
  Response.End();
  }
  }
  else
  {
  JSscript.AlertAndGoTo("帐号和密码都不能为空", "Default.aspx");
  Response.End();
  }

  }
}
有关的cs片断是:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;

/// <summary>
///AdminUserSExecutSqlS 的摘要说明
/// </summary>
public class AdminUserSExecutSqlS
{
public AdminUserSExecutSqlS()
{
//
//TODO: 在此处添加构造函数逻辑
//
}


  /// <summary>
  /// 添加用户
  /// </summary>
  /// <param name="uname"></param>


  /// <param name="upawd"></param>
  /// <param name="utruename"></param>
  /// <returns></returns>
  public static bool Admin_User_Add(string uname,string upawd,string utruename)
  {
  string Sqls = "INSERT INTO [CaiZ_Admin_UserS] ([ad_userName] ,[ad_userPwd] ,[ad_userTrueName],[ad_loginTime]) VALUES ";
  Sqls += " (@ad_userName ,@ad_userPwd ,@ad_userTrueName,@ad_loginTime)";
  SqlParameter[] ParmS = new SqlParameter[] {
  new SqlParameter("@ad_userName",uname),
  new SqlParameter("@ad_userPwd",upawd),
  new SqlParameter("@ad_userTrueName",utruename),
  new SqlParameter("@ad_loginTime",System.DateTime.Now),
  };
  return SQLHelper.ExecuteSql(Sqls, ParmS) > 0;
  }


  /// <summary>
  /// 用户是否为删除过的用户
  /// </summary>
  /// <param name="uname"></param>
  /// <returns></returns>
  public static bool IsDelByUserS(string uname)
  {
  string Sqls = "select ISNULL((select ad_id from CaiZ_Admin_UserS where ad_userName='" + uname + "'),0)";
  return Convert.ToInt32(SQLHelper.GetSingle(Sqls)) > 0;
  }
   
  /// <summary>
  /// 显示某一个用户
  /// </summary>
  /// <param name="uname"></param>
  /// <param name="upawd"></param>
  /// <param name="utruename"></param>
  /// <returns></returns>
  public static DataTable Admin_User_ShowOneByUname(string uname)
  {
  DataTable dt = new DataTable();
  DataSet ds = new DataSet();
  string Sqls = "select ad_ID,[ad_userName] ,[ad_userPwd] ,[ad_userTrueName] ,[ad_loginCount] ,[ad_loginTime] ,[ad_loginIp] ,[ad_stateLock]";
  Sqls += " FROM [CaiZ_Admin_UserS] where [ad_stateDel]=0 and [ad_userName]='" + uname + "'";
  ds = SQLHelper.Query(Sqls);
  if (ds.Tables.Count > 0)
  {
  dt = ds.Tables[0];
  }
  return dt;
  }

  /// <summary>
  /// 显示某一个用户
  /// </summary>
  /// <param name="uname"></param>
  /// <param name="upawd"></param>
  /// <param name="utruename"></param>
  /// <returns></returns>
  public static DataTable Admin_User_List()
  {
  DataTable dt = new DataTable();
  DataSet ds = new DataSet();
  string Sqls = "select ad_ID,[ad_userName] ,[ad_userPwd] ,[ad_userTrueName] ,[ad_loginCount] ,[ad_loginTime] ,[ad_loginIp] ,[ad_stateLock]";
  Sqls += " FROM [CaiZ_Admin_UserS] where [ad_stateDel]=0 ";
  ds = SQLHelper.Query(Sqls);
  if (ds.Tables.Count > 0)
  {
  dt = ds.Tables[0];
  }
  return dt;
  }


  /// <summary>
  /// 显示某一个用户
  /// </summary>
  /// <param name="uname"></param>
  /// <param name="upawd"></param>
  /// <param name="utruename"></param>
  /// <returns></returns>
  public static DataTable Admin_User_ShowOneById(int id)


  {
  DataTable dt = new DataTable();
  DataSet ds = new DataSet();
  string Sqls = "select ad_ID,[ad_userName] ,[ad_userPwd] ,[ad_userTrueName] ,[ad_loginCount] ,[ad_loginTime] ,[ad_loginIp] ,[ad_stateLock]";
  Sqls += " FROM [CaiZ_Admin_UserS] where [ad_stateDel]=0 and [ad_ID]=" + id + "";
  ds = SQLHelper.Query(Sqls);
  if (ds.Tables.Count > 0)
  {
  dt = ds.Tables[0];
  }
  return dt;
  }

  /// <summary>
  /// 更新用户用户
  /// </summary>
  /// <param name="uname"></param>
  /// <param name="upawd"></param>
  /// <param name="utruename"></param>
  /// <returns></returns>
  public static bool Admin_User_Update(string utruename,int id)
  {
  string Sqls = "update [CaiZ_Admin_UserS] set [ad_userTrueName]=@ad_userTrueName ";
  Sqls += " Where ad_ID=@ad_ID and ad_stateDel=0";
  SqlParameter[] ParmS = new SqlParameter[] {
  new SqlParameter("@ad_userTrueName",utruename),
  new SqlParameter("@ad_ID",id),
  };
  return SQLHelper.ExecuteSql(Sqls, ParmS) > 0;
  }


  /// <summary>
  /// 密码初始化
  /// </summary>
  /// <param name="uname"></param>
  /// <param name="upawd"></param>
  /// <param name="utruename"></param>
  /// <returns></returns>
  public static bool Admin_User_UpdatePwd(string upawd, int id)
  {
  string Sqls = "update [CaiZ_Admin_UserS] set [ad_userPwd]=@ad_userPwd ";
  Sqls += "Where ad_ID=@ad_ID and ad_stateDel=0";
  SqlParameter[] ParmS = new SqlParameter[] {
  new SqlParameter("@ad_userPwd",upawd),
  new SqlParameter("@ad_ID",id),
  };
  return SQLHelper.ExecuteSql(Sqls, ParmS) > 0;
  }


  /// <summary>
  /// 密码初始化
  /// </summary>
  /// <param name="uname"></param>
  /// <param name="upawd"></param>
  /// <param name="utruename"></param>
  /// <returns></returns>
  public static bool Admin_User_Del(int id)
  {
  string Sqls = "update [CaiZ_Admin_UserS] set [ad_stateDel]=1 ";
  Sqls += "Where ad_ID=@ad_ID and ad_stateDel=0";
  SqlParameter[] ParmS = new SqlParameter[] {
  new SqlParameter("@ad_ID",id),
  };
  return SQLHelper.ExecuteSql(Sqls, ParmS) > 0;
  }



  /// <summary>
/// 更新用户用户
/// </summary>
/// <param name="uname"></param>
/// <param name="upawd"></param>
/// <param name="utruename"></param>
/// <returns></returns>
public static bool Admin_User_LoginIn(string utruename, string pwd,string ip)
{
string Sqls = "update [CaiZ_Admin_UserS] set ad_loginCount=ad_loginCount+1,ad_loginTime=@ad_loginTime,ad_loginIp=@ad_loginIp";
Sqls += " Where [ad_userName]=@ad_userName and ad_userPwd=@ad_userPwd and ad_stateDel=0";


SqlParameter[] ParmS = new SqlParameter[] {
new SqlParameter("@ad_loginTime",System.DateTime.Now),
new SqlParameter("@ad_loginIp",ip),
new SqlParameter("@ad_userName",utruename),
new SqlParameter("@ad_userPwd",pwd),
};
return SQLHelper.ExecuteSql(Sqls, ParmS) > 0;
}

}

请教高手。

[解决办法]
从代码来看,应该会有问题
ip = RequestSafe_Cai.GetIP();
pwd = MD5_Cai.Encrypt(pwd);
if (AdminUserSExecutSqlS.Admin_User_LoginIn(names, pwd, ip))
 
建议断点查看一下是否names,或是pwd,或是ip是否是空的

如果是空的,对着查找就可以了。
[解决办法]
AdminUserSExecutSqlS这个东西是哪里来的?
[解决办法]

不实例化就可以直接用的吗?
[解决办法]
F11到这个函数里面去看Admin_User_LoginIn(names, pwd, ip)
[解决办法]

C# code
    if (new AdminUserSExecutSqlS.Admin_User_LoginIn(names, pwd, ip))    {}
[解决办法]
请使用try catch 然后一步步断点调试,有可能是你的字段类型不符合条件,查不出结果
[解决办法]
要一步步调试确认,首先 是不是AdminUserSExecutSqlS 这个对象出了问题?能不能调试到调用的方法呢?还是说参数的问题。。如果能调试进去那就是说明参数的问题了。。。比如说参数类型不符合要求会导致sql语句无法执行。。
[解决办法]
try catch 良好的习惯,能确定调试到哪一步出现了异常。。。
[解决办法]
public static bool Admin_User_LoginIn(string utruename, string pwd,string ip)
{
string Sqls = "update [CaiZ_Admin_UserS] set ad_loginCount=ad_loginCount+1,ad_loginTime=@ad_loginTime,ad_loginIp=@ad_loginIp";
Sqls += " Where [ad_userName]=@ad_userName and ad_userPwd=@ad_userPwd and ad_stateDel=0";
SqlParameter[] ParmS = new SqlParameter[] {
new SqlParameter("@ad_loginTime",System.DateTime.Now),
new SqlParameter("@ad_loginIp",ip),
new SqlParameter("@ad_userName",utruename),
new SqlParameter("@ad_userPwd",pwd),
};
return SQLHelper.ExecuteSql(Sqls, ParmS) > 0;
}

你方法里面的这句sql有问题:string Sqls = "update [CaiZ_Admin_UserS] set ad_loginCount=ad_loginCount+1,ad_loginTime=@ad_loginTime,ad_loginIp=@ad_loginIp";

ad_loginCount=ad_loginCount+1 写少了 @

[解决办法]
呵呵楼上好眼力哈。。果然是sql语句的问题咯。。
像这种访问数据的方法最好都是加try catch 便于调试,只要哪个地方出错就会马上跳到catch位置了。。
C# code
public static bool Admin_User_LoginIn(string utruename, string pwd,string ip){try{  string Sqls = "update [CaiZ_Admin_UserS] set   ad_loginCount=ad_loginCount+1,ad_loginTime=@ad_loginTime,ad_loginIp=@ad_loginIp";  Sqls += " Where [ad_userName]=@ad_userName and ad_userPwd=@ad_userPwd and  ad_stateDel=0";  SqlParameter[] ParmS = new SqlParameter[]     {     new SqlParameter("@ad_loginTime",System.DateTime.Now),     new SqlParameter("@ad_loginIp",ip),     new SqlParameter("@ad_userName",utruename),     new SqlParameter("@ad_userPwd",pwd),    };   return SQLHelper.ExecuteSql(Sqls, ParmS) > 0;   catch(...){...}}//只要你觉得会出现问题的地方都可以用它来监视}
[解决办法]
晕写错地方了,,catch写出来
[解决办法]
看看是否 引用了AdminUserSExecutSqlS类 所在的命名空间,明显这种错误是对象没实例化


[解决办法]

别加try catch


加的话


return SQLHelper.ExecuteSql(Sqls, ParmS) > 0;
catch(...){return false;}
[解决办法]

探讨
看看是否 引用了AdminUserSExecutSqlS类 所在的命名空间,明显这种错误是对象没实例化

[解决办法]
string names, pwd, ip;
下个断点看看names, pwd, ip这三个变量的值是多少,为空的话肯定就会报错了。
[解决办法]
探讨
看看是否 引用了AdminUserSExecutSqlS类 所在的命名空间,明显这种错误是对象没实例化

[解决办法]
探讨
应该是SQLHelper里面代码的问题,如数据库连接对象没创建成功

[解决办法]
你还是调试下那个方法,看到了哪一行出的错。。
[解决办法]
传入参数为空值,LZ 调试一下 看看 传入的参数是否正确,应该就木有问题了!
[解决办法]
单步调试,看是否有值不就知道了

热点排行