异常详细信息: System.FormatException: 输入字符串的格式不正确。
异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误:
行 123: com.Parameters.Add(new SqlParameter("@pass", SqlDbType.VarChar, 20));
行 124: com.Parameters["@pass"].Value = pass;
行 125: if (Convert.ToInt32(com.ExecuteScalar()) > 0)
行 126: {
行 127: return true;
源代码是这样的:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
/// <summary>
/// operateData 的摘要说明
/// </summary>
public class operateData
{
public operateData()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 创建数据库连接
/// </summary>
/// <returns>返回SqlConnection对象</returns>
public static SqlConnection createCon()
{
//创建数据库连接
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["con"]);
return con;
}
/// <summary>
/// 返回一行数据
/// </summary>
/// <param name="sql">SQL语句用来查询一行数据</param>
/// <returns>返回SqlDataReader对象</returns>
public static SqlDataReader getRow(string sql)
{
SqlConnection con = createCon();
con.Open();
SqlCommand com = new SqlCommand(sql, con);
SqlDataReader sdr = com.ExecuteReader();
return sdr;
}
/// <summary>
/// 执行添加、删除和更新数据操作
/// </summary>
/// <param name="sql">SQL语句添加数据、删除数据和更新数据</param>
/// <returns>返回一个布尔值,表示操作是否成功!</returns>
public static bool execSql(string sql)
{
SqlConnection con = createCon();
con.Open();
SqlCommand com = new SqlCommand(sql, con);
if (com.ExecuteNonQuery()>0)
{
return true;
}else{
return false;
}
}
/// <summary>
/// 返回多行数据
/// </summary>
/// <param name="sql">SQL语句查询出多行语句</param>
/// <returns>返回多行数据</returns>
public static DataTable getRows(string sql)
{
DataSet ds;
SqlConnection con = createCon();
con.Open();
SqlDataAdapter sda = new SqlDataAdapter(sql, con);
ds = new DataSet();
sda.Fill(ds);
con.Close();
return ds.Tables[0];
}
/// <summary>
/// 查询数据是否在表中存在
/// </summary>
/// <param name="sql">SQL语句查询一行数据</param>
/// <returns>返回int类型大于1表示存在</returns>
public static int getCount(string sql)
{
SqlConnection con = createCon();
con.Open();
SqlCommand com = new SqlCommand(sql, con);
return Convert.ToInt32(com.ExecuteScalar());
}
/// <summary>
/// 返回某一个列的值
/// </summary>
/// <param name="sql">SQL语句用来查询某一列的值</param>
/// <returns>返回列值,该值为字符串类型</returns>
public static string getTier(string sql)
{
SqlConnection con = createCon();
con.Open();
SqlCommand com = new SqlCommand(sql, con);
SqlDataReader sdr = com.ExecuteReader();
sdr.Read();
string tier=sdr[0].ToString();
return tier;
}
/// <summary>
/// 该方法用来实现登录查询
/// </summary>
/// <param name="sql">需要执行的SQL语句</param>
/// <param name="name">登录名</param>
/// <param name="pass">密码</param>
/// <returns>返回一个布尔值,true表示登录成功false表示失败</returns>
public static bool login(string sql, string name, string pass)
{
SqlConnection con = createCon();
con.Open();
SqlCommand com = new SqlCommand(sql, con);
com.Parameters.Add(new SqlParameter("@name", SqlDbType.VarChar, 20));
com.Parameters["@name"].Value = name;
com.Parameters.Add(new SqlParameter("@pass", SqlDbType.VarChar, 20));
com.Parameters["@pass"].Value = pass;
if (Convert.ToInt32(com.ExecuteScalar()) > 0)
{
return true;
}
else
{
return false;
}
}
}
结果,密码帐号输入错误时会提醒重新输入,是正常的,但输入正确的时候就发生这个错误了。。。大概是因为第125行Convert.ToInt32(com.ExecuteScalar())的值的原因,此值可能为null,所以提示的错误,但我不知道如何解决,还是新手,求大神帮助,谢谢! C# asp.net 输入字符串的格式不正确。 字符串 格式不正确 --------------------编程问答-------------------- 简单点,你先定义个变量接收一下com.ExecuteScalar()的值,然后再转,顺便看看是否为null。
--------------------编程问答-------------------- 或者用??运算符来简化一下,比如:
object obj = com.ExecuteScalar()??"0";//0表示如果com.ExecuteScalar为null,则通过??运算符运算后,结果会为0。??这个运算符叫空运算符,你可以百度一下。
这样转就不会报你这个异常了。简单处理下。 --------------------编程问答--------------------
我这么改的:
object obj = com.ExecuteScalar() ?? "0";
if (Convert.ToInt32(obj) > 0)
但还是出现刚才的错误,我这么写对么?怎么解决? --------------------编程问答-------------------- 那就是com.ExecuteScalar()这句话报错了,你看看里面各个参数的值对不对。 --------------------编程问答--------------------
com.ExecuteScalar()这句话不是查询当前数据库当前表里第一行第一列的值么,这个值在网页里是登录名,属性我设的varchar(20),而且数据库里也把它默认为admin了,登录也没出错啊。。。怎么办
补充:.NET技术 , ASP.NET