为什么数字不允许为空????????
下面语句中,当novalue值为空时,则就提示错误.当novalue值不为空时,则正常执行.
我现在要求:当novalue值为空时,也可以正常运行.是不是要用赋值(赋值为NULL,或者"")语句?
int novalue=int.Parse(((TextBox)e.Item.FindControl("CTID")).Text);
cmd.Parameters.Add("v_CTID",OracleType.Int32).Value=novalue;输入字符串的格式不正确。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误:
行 73: cmd.CommandType = CommandType.StoredProcedure;
行 74:
行 75: int novalue=int.Parse(((TextBox)e.Item.FindControl("CTID")).Text);
行 76:
行 77: cmd.Parameters.Add("v_CTID",OracleType.Int32).Value=novalue;
源文件: c:\wk\webapplicationcsharp\sales.aspx.cs 行: 75
下面语句中,当novalue值为空时,则就提示错误.当novalue值不为空时,则正常执行.
我现在要求:当novalue值为空时,也可以正常运行.是不是要用赋值(赋值为NULL,或者"")语句?
int novalue=int.Parse(((TextBox)e.Item.FindControl("CTID")).Text);
cmd.Parameters.Add("v_CTID",OracleType.Int32).Value=novalue;输入字符串的格式不正确。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误:
行 73: cmd.CommandType = CommandType.StoredProcedure;
行 74:
行 75: int novalue=int.Parse(((TextBox)e.Item.FindControl("CTID")).Text);
行 76:
行 77: cmd.Parameters.Add("v_CTID",OracleType.Int32).Value=novalue;
源文件: c:\wk\webapplicationcsharp\sales.aspx.cs 行: 75
在sql server就没有这个问题了
try{
return int.Parse(value.toString());
}catch(Exception e){
return defaultValue;
}
}ToSafeInt(((TextBox)e.Item.FindControl("CTID")).Text, 0);
这两年来慢慢习惯了光说不练
///*************************///
try
{
int novalue=int.Parse(((TextBox)e.Item.FindControl("CTID")).Text);
cmd.Parameters.Add("v_CTID",OracleType.Int32).Value=novalue;
}
catch(FormatExceptio)
{
MessageBox.Show("输入字符串的格式不正确,请重新输入!");
}
数据类型转换的时候是不能为空值的,解决方法:
1、前台验证不能为空
2、给个默认值(0)
cmd.Parameters.Add("v_CTID",OracleType.Int32).Value = novalue;这样的话,如果CTID为空的话,novalue = 0