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

输入字符串的格式不正确。

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

源错误: 


行 72:         foreach(DataRow dr in data.Tables["PZKdrug"].Rows)
行 73:         {
行 74:            if(int.Parse(dr[8].ToString())== ndrug_id)
行 75:             {
行 76:                 editDr=dr;
 

源文件: c:\Inetpub\wwwroot\PZK1\product\drug_edit.aspx.cs    行: 74 

堆栈跟踪: 


[FormatException: 输入字符串的格式不正确。]
   System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +2752915
   System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +102
   System.Int32.Parse(String s) +20
   product_drug_edit.Button2_Click(Object sender, EventArgs e) in c:\Inetpub\wwwroot\PZK1\product\drug_edit.aspx.cs:74
   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

 
--------------------编程问答-------------------- 先对dr[8]进行非空判断再进行比较 --------------------编程问答-------------------- int.Parse(dr[8].ToString()

这里出现了不能转换为数字的字符,请检查 --------------------编程问答-------------------- dr[8]如果为null使用ToString()会产生错误 --------------------编程问答-------------------- if(!string.IsNullOrEmpty(dr[8].ToString())) --------------------编程问答-------------------- 单步调试 --------------------编程问答--------------------
引用楼主 xiaxia1988620 的回复:
异常详细信息: System.FormatException: 输入字符串的格式不正确。

源错误: 


行 72: foreach(DataRow dr in data.Tables["PZKdrug"].Rows)
行 73: {
行 74: if(int.Parse(dr[8].ToString())== ndrug_id)
行 75: {
行 76: editDr=dr……
怎么进行非空判断啊 那里有字段 不是空的哦
--------------------编程问答--------------------
引用 2 楼 staywithc 的回复:
int.Parse(dr[8].ToString()

这里出现了不能转换为数字的字符,请检查


都是数字啊 --------------------编程问答-------------------- int.Parse(dr[8].ToString())

很明显是因为这里转换的时候dr[8].ToString不能转换为INT型 --------------------编程问答-------------------- if(dr[8]!=null && dr[8].ToString()!="")
{
   if(Convert.ToInt32(dr[8].ToString())==XXXid)
     {
       ……
     }

}
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,