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

有关DataGrid1_UpdateCommand事件更新flaot类型的问题

我用C#.net2003写的用DataGrid的按钮列(已设为模板列)更新价格数据,我在SQL   Server2000中有一个价格数据表,列名:sID(int型、主键)、sName(varchar型)、sPrice(float型,允许空) 

以下为我写的DataGrid1_UpdateCommand事件的更新代码 

private   void   DataGrid1_UpdateCommand(object   source,System.Web.UI.WebControls.DataGridCommandEventArgs   e) 

string   ID=this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString(); 
string   Price=((TextBox)(e.Item.Cells[3].Controls[1])).Text; 
//以下为数据库更新语句 
SqlConnection   Updatecon=DBCon.createCon(); 
Updatecon.Open(); 
SqlCommand   Updatecmd=new   SqlCommand("update   prices   set   sPrice='"+Price+"'   where   sID='"+ID+"'",Updatecon);   //数据表名prices   价格 
Updatecmd.ExecuteNonQuery(); 
Updatecon.Close(); 
this.DataGrid1.EditItemIndex=-1; 
this.BindToData();   //调用显示绑定,略 


现在的问题是:做好后使用更新语句从数据库更新没问题,但我为了试验,在更新文本框Textbox中输入负数、非数字等时,点击更新后价格数据变为0,并且再次更新时始终为0,改不过来了...-__-!请问这是怎么回事啊?怎样解决~各位高手 --------------------编程问答-------------------- 设断点看一下数据嘛,再高的手,看不到数据有没法判断,你看下Price在运行中的值 --------------------编程问答-------------------- 好的... --------------------编程问答-------------------- 将  string   price  转化成 int 应该就可以了
int  price = int.parse(((TextBox)(e.Item.Cells[3].Controls[1])).Text;)
试一下吧! --------------------编程问答-------------------- 你难道不进行合法性检测?如果不符合要求就不执行更新啊。那样就不会出现你说的情况了/。 --------------------编程问答-------------------- SqlCommand Updatecmd=new SqlCommand("update prices set sPrice="+Price+" where       sID='"+ID+"'",Updatecon);  
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,