关于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