有关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#