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

小弟我是菜鸟,想问个有关问题,希望好心人能帮帮小弟我,多谢

2012-03-13 
我是初学者,想问个问题,希望好心人能帮帮我,谢谢在数据库表里有几个字段,goodsname,price,quantity和total

我是初学者,想问个问题,希望好心人能帮帮我,谢谢
在数据库表里有几个字段,goodsname,price,quantity和totalprice,我用的是access2003,把它们都设置成了文本类型,我用GridView绑定了这几列,初始值比如是:
衣服             100           1             100
鞋子             200           1             200
在下面放一个按钮实现数量的更新,我想实现点击按钮后(数量的更新已实现),但是怎么同时让totalprice的值等于price和quantity的乘积,比如:
衣服             100           2             200
鞋子             200           4             800
数量的更新我是这么实现的
  OleDbConnection   conn   =   new   OleDbConnection(@ "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=e:\myweb\db1.mdb ");

                foreach   (GridViewRow   row   in   GridView1.Rows)
                {

                        TextBox   tb   =   (TextBox)row.Cells[2].FindControl( "TextBox2 ");
                      string   sql   =   "update   trolley   set   quantity= ' "   +   tb.Text   +   " '   where   username= ' "   +   Session[ "username "].ToString()   +   " 'and   goodsname= ' "   +   row.Cells[0].Text   +   " ' ";
                                OleDbCommand   cmd   =   new   OleDbCommand(sql,   conn);
                                  conn.Open();
                                cmd.ExecuteNonQuery();
                                conn.Close();
                                DataBind();
                }
怎么让totalprice同时也改变呢?我只有20分了,还是希望有人能帮帮我,谢谢                                
                       
 



[解决办法]
TextBox tb = (TextBox)row.Cells[2].FindControl( "TextBox2 ");
TextBox tb2 = (TextBox)row.Cells[X].FindControl( "pricetextbox id ");

string sql = "update trolley set quantity= ' " + tb.Text + " ' totalprice= ' "+Convert .ToInt32(tb2.Text)*Convert .ToInt32 (tb.Text) " ' where username= ' " + Session[ "username "].ToString() + " 'and goodsname= ' " + row.Cells[0].Text + " ' ";

[解决办法]
偶是个笨人,不知道有什么好的方法,可以这么做,在前面绑定的时候
<%#(double)Eval( "price ")*(double)Eval( "quantity ")%> 达到价格总和,不知道有没有更好的方法!
关注
------解决方案--------------------


access数据库不熟,给你个MSSQL的代码,按你这么写的
SqlConnection con = new SqlConection "server=.;database=你的数据库;uid=sa;pwd=; ";//ACCESS真的没用过...
con.open();
SqlCommand cmd = new SqlCommand( "update 表 set quantity= ' " + tb.Text + " ' totalprice= ' "+(Convert.ToInt32(lb.Text))*(Convert.ToInt32(tb.Text))+ " 'where username= ' " + Session[ "username "].ToString() + " 'and goodsname= ' " + row.Cells[0].Text + " '
",con);
cmd.ExecuteNonQuery();
conn.Close();
DataBind();

如果转换无效,你可以把TEXT的内容先INT到变量里面比如:
int a;
a = Covert.Int32(tb.Text)
试试看,大家都是新手来的....
[解决办法]
SQL命令已经给你很正确了 语法错误说明你采集的数据有问题
比如 数字的地方你加了 单引号 文本的地方你没加引号
还有就是输入的数据本身有问题。

不要TEXTBOX1.TEXT直接加到SQL命令中。
最好是先检查数据和法性
比如TEXTBOX1要输入数字 那就应该先把它的TEXT拿出来CONVERT.TOINT32一下
用PARAM的方式压给SQLCOMMAND
这样才对
[解决办法]
<%#double .Parse (Eval( "price "))*double .Parse (Eval( "quantity "))%>
这样转换!

热点排行