老是抛FormatException异常?看了三天还未搞定,求救!!
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