首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

求求你们!帮帮小弟我吧!求求你们了!数据不能为空啊.

2011-12-25 
求求你们!帮帮我吧!求求你们了!数据不能为空啊............一textbox向数据库传值,数据库该列已经设置为可

求求你们!帮帮我吧!求求你们了!数据不能为空啊............
一textbox向数据库传值,数据库该列已经设置为可为空,但是提交页面后程序报错
---------------------错误如下
输入字符串的格式不正确。  
说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。  

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

源错误:  


行   73:                           cmd.Parameters.Add(para);
行   74:  
行   75:                           cmd.ExecuteNonQuery();
行   76:  
行   77:                           con.Close();
 
[FormatException:   输入字符串的格式不正确。]
      System.Number.StringToNumber(String   str,   NumberStyles   options,   NumberBuffer&   number,   NumberFormatInfo   info,   Boolean   parseDecimal)   +2752691
      System.Number.ParseInt32(String   s,   NumberStyles   style,   NumberFormatInfo   info)   +102
      System.String.System.IConvertible.ToInt32(IFormatProvider   provider)   +43
      System.Convert.ChangeType(Object   value,   Type   conversionType,   IFormatProvider   provider)   +214
      System.Data.SqlClient.SqlParameter.CoerceValue(Object   value,   MetaType   destinationType)   +734

[FormatException:   将参数值从   String   转换到   Int32   失败。]
      System.Data.SqlClient.SqlParameter.CoerceValue(Object   value,   MetaType   destinationType)   +781
      System.Data.SqlClient.SqlParameter.GetCoercedValue()   +30
      System.Data.SqlClient.SqlParameter.Validate(Int32   index)   +136
      System.Data.SqlClient.SqlCommand.BuildParamList(TdsParser   parser,   SqlParameterCollection   parameters)   +133
      System.Data.SqlClient.SqlCommand.BuildExecuteSql(CommandBehavior   behavior,   String   commandText,   SqlParameterCollection   parameters,   _SqlRPC&   rpc)   +256
      System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior   cmdBehavior,   RunBehavior   runBehavior,   Boolean   returnStream,   Boolean   async)   +1021
      System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior   cmdBehavior,   RunBehavior   runBehavior,   Boolean   returnStream,   String   method,   DbAsyncResult   result)   +314
      System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult   result,   String   methodName,   Boolean   sendToPipe)   +413
      System.Data.SqlClient.SqlCommand.ExecuteNonQuery()   +115
      Issurance.ButtonAdd_Click(Object   sender,   EventArgs   e)   in   d:\web\cvRent.aspx.cs:75
      System.Web.UI.WebControls.Button.OnClick(EventArgs   e)   +75
      System.Web.UI.WebControls.Button.RaisePostBackEvent(String   eventArgument)   +97
      System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String   eventArgument)   +7
      System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler   sourceControl,   String   eventArgument)   +11
      System.Web.UI.Page.RaisePostBackEvent(NameValueCollection   postData)   +33


      System.Web.UI.Page.ProcessRequestMain(Boolean   includeStagesBeforeAsyncPoint,   Boolean   includeStagesAfterAsyncPoint)   +4919
-----
求求前辈们救救我吧!求求你们了!!!谢谢!!!!!!!!!

[解决办法]
[FormatException: 将参数值从 String 转换到 Int32 失败。]

para.Value = Convert.ToInt32(TxtMoney.Text);
[解决办法]

[FormatException: 将参数值从 String 转换到 Int32 失败。]

你的参数是Int,你给的值是string

para.Value =Int32.Parse(TxtMoney.Text);

个人见解,共同学习
[解决办法]
if(TxtMoney.Text!= " ")
para.Value = int.Parse(TxtMoney.Text);
else
para.Value =0;
[解决办法]
//这句: para.Value = TxtMoney.Text;

TxtMoney.Text是string类型的,

para.Value要求的类型是int的,
两者类型不同,不能直接转换.要把TxtMoney.Text转成Int类型才行.
[解决办法]
限制文本框必须输入正整数!
然后 para.Value = Convert.ToInt32(TxtMoney.Text);

热点排行