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

输入字符串的格式不正确,该如何处理

2012-01-12 
输入字符串的格式不正确小弟是位初学者,刚刚编了一个小程序,但是出现在这个问题,查了很久也没发现错误的地

输入字符串的格式不正确
小弟是位初学者,刚刚编了一个小程序,但是出现在这个问题,查了很久也没发现错误的地方,不知道那位大哥能指点一下,谢谢
程序代码:
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 汉~~~
[解决办法]
問題說得清楚點﹐在那里出錯???
再把你的儲存過程也貼出來﹗

热点排行