输入字符串的格式不正确
小弟是位初学者,刚刚编了一个小程序,但是出现在这个问题,查了很久也没发现错误的地方,不知道那位大哥能指点一下,谢谢
程序代码:
protected void btn_submit_Click(object sender, EventArgs e)
{
if(Page.IsValid)
{
string strconn = "server=localhost;uid=sa;pwd=sa;database=购物 ";
SqlConnection cn = new SqlConnection(strconn);
cn.Open();
SqlConnection cn1 = new SqlConnection(strconn);
cn1.Open();
SqlConnection cn2 = new SqlConnection(strconn);
cn2.Open();
SqlCommand cm=new SqlCommand( "ProductAdd ",cn);
cm.CommandType= CommandType.StoredProcedure;
cm.Parameters.Add( "@PID ",SqlDbType.Int);
cm.Parameters.Add( "@PName ",SqlDbType.VarChar);
cm.Parameters.Add( "@PVender ",SqlDbType.VarChar);
cm.Parameters.Add( "@PGroup ",SqlDbType.Int);
cm.Parameters.Add( "@PDescribe ",SqlDbType.VarChar);
SqlCommand cm1=new SqlCommand( "PriceAdd ",cn1);
cm1.CommandType=CommandType.StoredProcedure;
cm1.Parameters.Add( "@PPID ",SqlDbType.Int);
cm1.Parameters.Add( "@PPrice ",SqlDbType.Money);
cm1.Parameters.Add( "@PDiscount ",SqlDbType.Float);
SqlCommand cm2=new SqlCommand( "MaxPIDGet ",cn2);
cm2.CommandType=CommandType.StoredProcedure;
cm2.Parameters.Add( "@maxpid ", SqlDbType.Int);
cm2.Parameters[ "@maxpid "].Direction=ParameterDirection.Output;
cm2.ExecuteReader();
string maxpidstring=cm2.Parameters[ "@maxpid "].Value.ToString();
int maxpid;
if(maxpidstring== " ")
{
maxpid=1;
}
else
{
maxpid=Convert.ToInt32(maxpidstring)+1;
}
cm.Parameters[ "@PID "].Value=maxpid;
cm.Parameters[ "@PName "].Value=tbx_pname.Text.ToString();
cm.Parameters[ "@PVender "].Value=tbx_vender.Text.ToString();
cm.Parameters[ "@PGroup "].Value=ddl_bgroup.SelectedItem.Value.ToString();
cm.Parameters[ "@PDescribe "].Value=tbx_describe.Text.ToString();
cm1.Parameters[ "@PPID "].Value=maxpid;
cm1.Parameters[ "@PPrice "].Value =Convert.ToDouble(tbx_price.Text.ToString());
cm1.Parameters[ "@PDiscount "].Value=Convert.ToInt16(ddl_bdiscount.SelectedItem.Value.ToString());
cm.ExecuteNonQuery();
cm1.ExecuteNonQuery();
cn.Close();
cn1.Close();
cn2.Close();
Response.Redirect( "manage.aspx ");
}
[解决办法]
用一SqlConnection就行了呀
[解决办法]
SqlConnection cn = new SqlConnection(strconn);
cn.Open();
SqlConnection cn1 = new SqlConnection(strconn);
cn1.Open();
SqlConnection cn2 = new SqlConnection(strconn);
cn2.Open();
好多open啊......寒
------解决方案--------------------
string maxpidstring=cm2.Parameters[ "@maxpid "].Value.ToString();
这句你仔细看下,然后在单步调试下
[解决办法]
是啊 ~
为什么有那么多 connection ?
[解决办法]
应该写成一个事务吧?!
[解决办法]
单步调试下吧,这样太难发现问题了
[解决办法]
单步调试
[解决办法]
string strconn = "server=localhost;uid=sa;pwd=sa;database=购物 ";
把数据库名称改成英文试试#83 汉~~~
[解决办法]
得清楚在那里出???
再把你的存程也出