当前位置:编程学习 > 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的单引号去掉试试

SqlCommand   Updatecmd=new   SqlCommand("update   prices   set   sPrice='"+Price+"'   where   sID='"+ID+"'",Updatecon);   //数据表名prices   价格 
改成
SqlCommand   Updatecmd=new   SqlCommand("update   prices   set   sPrice="+Price+"   where   sID='"+ID+"'",Updatecon);   //数据表名prices   价格 

--------------------编程问答-------------------- 不行啊,去掉后点"更新"按钮提示:where附近有语法错误 ?__? --------------------编程问答--------------------


string sql="update   prices   set   sPrice="+Price+"   where   sID='"+ID+"'";
SqlCommand   Updatecmd=new   SqlCommand(sql,Updatecon);
--------------------编程问答-------------------- wangkun9999大大,这样似乎效果一样,我试了下还是 "where附近有语法错误",DataGrid编辑列点"更新"时出错... --------------------编程问答-------------------- ToDecimal  Price=Convert.ToDecimal(((TextBox)(e.Item.Cells[3].Controls[1])).Text.Trim());
--------------------编程问答--------------------

Decimal  Price=Convert.ToDecimal(((TextBox)(e.Item.Cells[3].Controls[1])).Text.Trim()); 
--------------------编程问答-------------------- 我将类型改为decimal,并使用以上语句,错误提示:输入字符串的格式不正确。
晕了..还是谢谢楼上的朋友^^ --------------------编程问答-------------------- 我将Price单引号去掉了的,"update   prices   set   sPrice="+Price+"   where   sID='"+ID+"'" --------------------编程问答-------------------- 把生成的sql语句直接放数据库里试~--! --------------------编程问答-------------------- 楼上的说的是存储过程吗?不太明白...求解 --------------------编程问答-------------------- 数据库中price字段要是Decimal类型的,然后按照1楼写SQL语句,在更新之前,将输入价格的输入框进行转换:
decimal Price=decimal.Parse(TextBox1.Text.Trim());
按照这个流程来,应该没问题。 --------------------编程问答-------------------- SqlCommand   Updatecmd=new   SqlCommand("update   prices   set   sPrice='"+Price+"'   where   sID='"+ID+"'",Updatecon);   //数据表名prices   价格 
改成
SqlCommand   Updatecmd=new   SqlCommand("update   prices   set   sPrice="+Price+"   where   sID="+ID+"",Updatecon);   //数据表名prices   价格 

int  类型的不要用 '  符号,呵



--------------------编程问答-------------------- int ID=this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString(); 
decimal   Price=decimal.Parse(TextBox1.Text.Trim()); 

要和数据库里的字段相对应!!!!!!!!!!!!!!!!!!!!!!!!!!1 --------------------编程问答-------------------- ("update   prices   set   sPrice='"+Price+"'   where   sID='"+ID+"')
把这个放sql看能运行通过不~
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,