老是抛FormatException异常?看了三天还未搞定,求救!!

zhq_949 2006-02-12 01:47:19
insert.Parameters.Add(new SqlParameter("@invid",SqlDbType.NChar,10));
insert.Parameters.Add(new SqlParameter("@idate",SqlDbType.NChar,10));
insert.Parameters.Add(new SqlParameter("@prodid",SqlDbType.NChar,10));
insert.Parameters.Add(new SqlParameter("@custid",SqlDbType.NChar,10));
insert.Parameters.Add(new SqlParameter("@qt",SqlDbType.Int));
insert.Parameters.Add(new SqlParameter("@prodprice",SqlDbType.Int));
insert.Parameters.Add(new SqlParameter("@tprice",SqlDbType.Int));
insert.Parameters.Add(new SqlParameter("@ccc",SqlDbType.NChar,30));
insert.Parameters.Add(new SqlParameter("@ccn",SqlDbType.NChar,30));

insert.Parameters["@idate"].Value=System.DateTime.Today.ToString();
insert.Parameters["@custid"].Value=ddlcustid.SelectedItem.ToString();
insert.Parameters["@qt"].Value=System.Convert.ToInt32(txtqty.Text);
insert.Parameters["@prodprice"].Value=pprice.ToString();
insert.Parameters["@tprice"].Value=(System.Convert.ToInt32(insert.Parameters["@qt"].Value.ToString()))*(System.Convert.ToInt32(insert.Parameters["@prodprice"].Value.ToString()));
insert.Parameters["@ccc"].Value=txtccc.Text.ToString();
insert.Parameters["@ccn"].Value=txtccn.Text.ToString();
insert.Parameters["@prodid"].Value=prid.ToString();
DataTable dt=new DataTable();
DataRow[] dr=new DataRow[100];
dt=dsinv.Tables["orderdetails"];
string id=dt.Rows[dt.Rows.Count-1]["InvID"].ToString();
string str=id.Substring(1,3);
int y=System.Convert.ToInt32(str);
y=y+1;
if(y>1&&y<=9)
{
insert.Parameters["@invid"].Value="I00"+y;
}
if(y>9&&y<99)
{
insert.Parameters["@invid"].Value="I0"+y;
}
if(y>99)
{
insert.Parameters["@invid"].Value="I"+y;
}
try
{
insert.Connection.Open();
insert.ExecuteNonQuery();
}
catch (System.FormatException exe)
{
lblmessage.Text=exe.Message;
//lblmessage.Text="Source:"+exe.Source;
}

插入的存储过程如下:
ALTER procedure insertrecords(@invid NChar(10),@idate NChar(10),@prodid NChar(10),@custid NChar(10),@qt int,@prodprice int,@tprice int,@ccc NChar(30),@ccn NChar(30))
as
insert into OrderDetails(InvId, InvDate,PID,CID,Qty,Price,TotalPrice,CCCompany, CCNumber)
values(@invid,@idate,@prodid,@custid,@qt,@prodprice,@tprice,@ccc,@ccn)

是一个关于购物的订单,选择商品后,输入数量、id卡号等信息后确认,会出现客户的订单详细。
按下按钮后有时插入成功,有时则抛:
输入字符串的格式不正确。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

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

源错误:


行 180: insert.Parameters["@qt"].Value=System.Convert.ToInt32(txtqty.Text);
行 181: insert.Parameters["@prodprice"].Value=pprice.ToString();
行 182: insert.Parameters["@tprice"].Value=(System.Convert.ToInt32(insert.Parameters["@qt"].Value.ToString()))*(System.Convert.ToInt32(insert.Parameters["@prodprice"].Value.ToString()));
行 183: insert.Parameters["@ccc"].Value=txtccc.Text.ToString();
行 184: insert.Parameters["@ccn"].Value=txtccn.Text.ToString();


源文件: c:\inetpub\wwwroot\webapplication1\webform1.aspx.cs 行: 182

堆栈跟踪:


[FormatException: 输入字符串的格式不正确。]
System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +0
System.Convert.ToInt32(String value) +47
WebApplication1.WebForm1.btnsubmit_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\webapplication1\webform1.aspx.cs:182
System.Web.UI.WebControls.Button.OnClick(EventArgs e)
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()

小弟愚钝,思破头皮不得其解。望请解惑.thanks
...全文
175 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhq_949 2006-02-12
  • 打赏
  • 举报
回复
回ksnoopy:
我刚才是过了。第一次成功,第二次失败。另有谁能告知我堆栈跟踪下面的内容是什么意识?
zhq_949 2006-02-12
  • 打赏
  • 举报
回复
用正则表达式来判断qty,ccn的格式,qty为\d{1,},ccn为[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}。
ksnoopy 2006-02-12
  • 打赏
  • 举报
回复
182行试下这样写:
insert.Parameters["@tprice"].Value=insert.Parameters["@qt"].Value*insert.Parameters["@prodprice"].Value;

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧