当前位置:编程学习 > C#/ASP.NET >>

关于asp.net查询数据库的问题?

 下面是出错的代码(红色部分):
                数据库是sqlserver 2000,其中usertype 类型为 bit(0代表普通用户,1代表管理员),
string sql = "select usertype from tbluser where username='" + username + "'";
            int usertype = Convert.ToInt32(db.SelOne(sql));
            
            if (usertype == 1)
            {
                Session["userLogin"] = txtuser.Text;
                Response.Redirect("admin.aspx");
            }
            else
            {
                Session["userLogin"] = txtuser.Text;
                Response.Redirect("userMain.aspx");
            }

出错信息:(行58)
    输入字符串的格式不正确。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.FormatException: 输入字符串的格式不正确。

源错误: 


行 56:             //int usertype1 = Int32.Parse(db.SelOne(sql_usertype));
行 57:             string sql = "select usertype from tbluser where username='" + username + "'";
行 58:             int usertype = Convert.ToInt32(db.SelOne(sql));
行 59:             
行 60:             if (usertype == 1)
 
                        谢谢!!! --------------------编程问答-------------------- 这个应该就是在你执行
db.SelOne(sql) 返回的类型不正确,在这个函数里就转换错误,或者是没找到
你应该调试跟踪下 --------------------编程问答-------------------- 对,返回的数据类型不正确,不能进行强制转换 --------------------编程问答-------------------- 应该是返回数据类型不对 --------------------编程问答-------------------- 应该怎么改动啊?最好不要变动数据库, --------------------编程问答-------------------- 同意楼上的
你的db.SelOne()方法的返回值是不是不匹配 
--------------------编程问答-------------------- 贴出你的SelOne()方法来。 --------------------编程问答-------------------- 贴出你的SelOne()方法来。 --------------------编程问答-------------------- int   usertype   =   Convert.ToInt32(db.SelOne(sql)); 


SelOne(sql)没有转成字符串吧. --------------------编程问答--------------------  public static string SelOne(string sql)//返回记录为一个值
    {
      
        SqlConnection sqlconn = db.DBsqlConnection();
        sqlconn.Open();
        SqlCommand com = new SqlCommand(sql,sqlconn);
        return com.ExecuteScalar().ToString();
        sqlconn.Close();
    } --------------------编程问答-------------------- com.ExecuteScalar().ToString(); 
这里应该转成了"true" or "false" --------------------编程问答-------------------- public   static   object   SelOne(string   sql)//返回记录为一个值 
{
        using (SqlConnection sqlconn = db.DBsqlConnection())
        {
            using (SqlCommand com = new SqlCommand(sql, sqlconn))
            {
                try
                {
                    sqlconn.Open();
                    return com.ExecuteScalar();                    
                }
                catch
                {
                    sqlconn.Close();
                    return null; 
                }
            }            
        }
} --------------------编程问答--------------------  int   usertype   =   Convert.ToInt32(db.SelOne(sql).ToString()); 
--------------------编程问答-------------------- 再不行,直接用string型来判断,要转化成int
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,