“/SmallHouse”应用程序中的服务器错误。
--------------------------------------------------------------------------------输入字符串的格式不正确。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误: 
行 143: Login_logged = true;
行 144:
行 145: Session["UserRights"] = Convert.ToInt32(Utility.Dlookup("members", "security_level_id", "member_login ='" + Login_name.Text + "' and member_password='" + CCUtility.Quote(Login_password.Text) + "'"));
行 146:
行 147: string sQueryString = Utility.GetParam("querystring");
 源文件: d:\inetpub\wwwroot\smallhouse\index.aspx.cs    行: 145 堆栈跟踪: 
[FormatException: 输入字符串的格式不正确。]
   System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +0
   System.Convert.ToInt32(String value) +47
   SmallHouse.index.Login_login_Click(Object sender, EventArgs e) in d:\inetpub\wwwroot\smallhouse\index.aspx.cs:145
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
   System.Web.UI.Page.ProcessRequestMain() +1277 
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573 
源程序如下: private void Login_login_Click(object sender, System.EventArgs e)
{
if (Login_logged) 
{

// Login Logout begin

// Login OnLogout Event begin
// Login OnLogout Event end
Login_logged = false;
Session["UserID"] = 0;
Session["UserRights"] = 0;
Login_Show();
// Login Logout end


else 
{

// Login Login begin
int iPassed = Convert.ToInt32(Utility.Dlookup("members", "count(*)", "member_login ='" + Login_name.Text + "' and member_password='" + CCUtility.Quote(Login_password.Text) + "'"));
if (iPassed > 0) 
{

// Login OnLogin Event begin
// Login OnLogin Event end
//Login_message.Visible = false; Session["UserID"] = Convert.ToInt32(Utility.Dlookup("members", "member_id", "member_login ='" + Login_name.Text + "' and member_password='" + CCUtility.Quote(Login_password.Text) +"'"));
Login_logged = true;

Session["UserRights"] = Convert.ToInt32(Utility.Dlookup("members", "security_level_id", "member_login ='" + Login_name.Text + "' and member_password='" + CCUtility.Quote(Login_password.Text) + "'"));

string sQueryString = Utility.GetParam("querystring");
string sPage = Utility.GetParam("ret_page");
if (! sPage.Equals(Request.ServerVariables["SCRIPT_NAME"]) && sPage.Length > 0) 
{
Response.Redirect(sPage + "?" + sQueryString);

else 
{

Response.Redirect(Login_FormAction);
}

else 
{
//Login_message.Visible = true;
}
// Login Login end

}
} private void Login_reset_Click(object sender, System.EventArgs e)
{
Login_name.Text="";
Login_password.Text="";
}
}
}
  

解决方案 »

  1.   

    Utility.Dlookup是返回什么类型的数据
      

  2.   

    Utility.Dlookup返回值为int型的数值
    public int DlookupInt(string table, string field, string sWhere)
    {
    string sSQL = "SELECT " + field + " FROM " + table + " WHERE " + sWhere; OleDbCommand command = new OleDbCommand(sSQL, Connection);
    OleDbDataReader reader=command.ExecuteReader(CommandBehavior.SingleRow);
    int iReturn = -1; if (reader.Read()) {
    iReturn = reader.GetInt32(0);
    } reader.Close();
    return iReturn;
    }
      

  3.   

    你确保
    Utility.Dlookup("members", "security_level_id", "member_login ='" + Login_name.Text + "' and member_password='" + CCUtility.Quote(Login_password.Text) + "'");返回的是数值型的字符串?
      

  4.   

    可能是CCUtility.Quote(Login_password.Text)的返回值得问题吧。
      

  5.   

    这里是Quote的说明:
    public static string Quote(string Param) {
    if (Param == null || Param.Length == 0) {
    return "";
    } else {
    return Param.Replace("'","''");
    }
    }