ASP.NET 购物车提交插入数据库软件sql server的问题

ASP.NET 购物车提交插入数据库的问题_百度知道
ASP.NET 购物车提交插入数据库的问题
将一张表中某几列数据写入另一张表如何将一张数据库表中的某几列数据写入另一张表,同时再加上一列相同的数据。其实我就是想做一个一个订单编号对应多个商品的提交功能,请大家帮帮忙支畅紶扳咳殖纠帮穴爆膜支招,谢谢!
提问者采纳
你好,很高兴为你解答insert into 表B(材料,名称,规格,入库数量,库存总金额) select 材料,名称,规格,sum(入库数量),sum(总金额) from 表A group by 材料,名称,规格--如果有过滤条件再在畅紶扳咳殖纠帮穴爆膜group by 语句后面加上where...如有其他问题,可以继续追问,您的采纳是我前进的动力!
我想请问一下group by的作用是什么呢,是跨表就要使用吗
提问者评价
某公司设计部部长
其他类似问题
为您推荐:
购物车的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁推荐出版社
购物车 0 件商品 共 ?0.0 元
ASP.NET数据库网站设计教程-(C#版)
出版日期:2012-08
字数:680000
开本:16开
包装:平装
定价:45.0
折扣:55折
蔚蓝价:?24.8
vip(2-3星):?24.8
svip(4-5星):?24.8
商品评论(0)
商品问答(0)继上次的首页数据列表后,这是第二篇。记录一下购物车这个比较庞大的功能,可能实现的方法跟其他人有点不一样,不过原理都差不多,是将cookie存数据库里面的。
首先看一下购物车流程及对应代码。
1.如果购物车为空,就显示
其方法是创建两个大的div层,当你没有购买商品时,就显示这层,里面啥都没有,如果你点击了一个商品加入购物车,就会将这层隐藏,显示存放刚放入购物车商品信息的那一层,其控制方法如下:
DataSet ds = bllShopCar.ShopCarQT(Request.Cookies[&ShopUser&].Value);
if (ds.Tables[<span style="color: #].Rows.Count & <span style="color: #)
havegoodsbox1.Visible = true;
RadListView1.DataSource =
RadListView1.DataBind();
nocarbox.Visible = true;
}第一行先dataset一下,ShopCarQT是一个方法:
public DataSet ShopCarQT(string strWhere)
StringBuilder strSql = new StringBuilder();
strSql.Append(&select * from ShopCar left join GoodsInfo on [ShopCar].[Goods_ID] = [GoodsInfo].[Goods_ID] where [ShopUser] = '&);
if (strWhere.Trim() != &&)
strSql.Append(strWhere + &'&);
return DbHelperSQL.Query(strSql.ToString());
}Shopcar是购物车表,GoodsInfo 是商品信息表,看一下表设计:这是Shopcar,&#160;这是GoodsInfo。其中ShopCar中的ShopUser存放的是一个cookie,当你选中商品加入购物车时,除了商品信息会插入ShopCar,还有一个ShopUser会插入:其代码是在后台创建cookie:
if (Request.Cookies[&ShopUser&] == null || Request.Cookies[&ShopUser&].Value == &&)
Response.Cookies[&ShopUser&].Value = DateTime.Now.ToString(&yyyyMMddhhmmssfff&);
Response.Cookies[&ShopUser&].Expires = DateTime.Now.AddYears(<span style="color: #);
}接着ShopUser会生成一个cookie存到后台并且这个值会放入数据库中。再回到上面的方法,方法里面将这两张表根据ShopUser,select了一下。然后下一行是if判断,如果数据库里面没有数据,nocarbox的值就是true,其中nocarbox 就是上面的层,显示的是“您的购物车还是空的”;如果有数据,havegoodsbox1 的值就是true,这是购物车中有商品的层,显示出来差不多是这样2.一些细节首先,用一台电脑购物时,存放在ShopUser的cookie值是一样的,比如我这台电脑,将两个商品加入购物车:只要是同一台电脑,他的ShopUser都是一样的,但是Goods_ID,不可能相同,如过你添加同一个商品到购物车就会这样:这是相同ShopUser下,Goods_ID不能相同,还有一种就是不同ShoUser情况的,Goods_ID可以相同,也就是不同电脑添加相同商品不会产生冲突问题。具体添加商品的判断语句如下:
if (bllshopcar.GetRecordCount2(&[Goods_ID] = & + Request[&id&] , &[ShopUser] = & + Request.Cookies[&ShopUser&].Value) !=<span style="color: # )
Page.ClientScript.RegisterStartupScript(this.GetType(), &alert&, &&script&alert('不能添加重复商品!');location.replace(location.href);&/script&&);
molshopcar.ShopUser = Request.Cookies[&ShopUser&].V
molshopcar.Goods_ID =Int32.Parse((Request[&id&]));
Money = Convert.ToInt32(this.qty_item_1.Text) * Convert.ToInt32(this.lblgoods_GBprice.Text);
molshopcar.Goods_Money = M
molshopcar.Goods_Name = lblgoods_name.T
molshopcar.Goods_Num = Convert.ToInt32(qty_item_1.Text);
bllshopcar.Add(molshopcar);
Page.ClientScript.RegisterStartupScript(this.GetType(), &alert&, &&script&alert('加入购物车成功!'); &/script&&);
}其中GetRecordCount2 是一个方法,相同IP,也就是ShopUser相同的情况下,商品是否重复:
/// &summary&/// 判断购物车商品是否重复/// &/summary&
public int GetRecordCount2(string str1,string str2)
StringBuilder strSql = new StringBuilder();
strSql.Append(&select count(1) FROM ShopCar &);
if (str1.Trim() != && || str2.Trim() != &&)
strSql.Append(& where & + str1 + &and & + str2);
object obj = DbHelperSQL.GetSingle(strSql.ToString());
if (obj == null)
return <span style="color: #;
return Convert.ToInt32(obj);
}如果全部成功,就add一下,到ShopCar表中。3.购物车中商品信息修改这块我弄了很久,因为在Radlistview 中(其实不止Radlistview,其他像什么Gridview估计也是这种情况),所有官方控件比如button,textbox之类的,全部失效,后台获取不到它们的ID,因此你要是修改商品的信息,例如数量,就会显的非常麻烦,琢磨了好久之后终于用js实现了。这方法不像那种淘宝里面的,直接+/-,那方法至今没搞懂怎么获取值。这方法当你输入数量后,点击确定,他就根据数量修改该商品小计和下面的合计金额。在代码中,他会首先获取输入的值,只需要在前台写一个简单的js就可以了,代码如下:
function change(js_shopcarid)
var goodsnum = prompt(&请输入数量&, &&);//将输入的数量赋值给num
if(goodsnum & 0 )
alert(&请输入正确数值&);
if (goodsnum)
alert(&修改成功!&);
document.cookie = &jsshopcarid=& + js_
document.cookie = &goodsnum=& +
var btn = document.getElementById(&Button3&);
btn.click();
alert(&您取消了修改数量!&);
}这里做的比较简单:获取值给num后,创建两个js的cookie(js的cookie在后台可以获取的)分别是”jsshopcarid”和”goodsnum”,分别存放商品ID和商品数量,接着触发一个隐藏button,这button在后台有一个事件:
protected void Button3_Click(object sender, EventArgs e)
bllShopCar.Updatagoods(Int32.Parse( Request.Cookies[&goodsnum&].Value),Int32.Parse(Request.Cookies[&jsshopcarid&].Value));
DataSet getGoodsid = bllShopCar.GetList(&ShopCarID=& + Int32.Parse(Request.Cookies[&jsshopcarid&].Value));
Goodsid = getGoodsid.Tables[<span style="color: #].Rows[<span style="color: #][&Goods_ID&].ToString();
//获取Godos_ID
DataSet getprice = bllgoods.GetList(&Goods_ID=& + Goodsid);
In_Storeprice = getprice.Tables[<span style="color: #].Rows[<span style="color: #][<span style="color: #].ToString(); //获取商品单价
s = Int32.Parse(In_Storeprice) * Int32.Parse(Request.Cookies[&goodsnum&].Value); //计算小计
bllShopCar.Updatemoney(s, Int32.Parse(Request.Cookies[&jsshopcarid&].Value));
DataSet getallprice =
bllShopCar.getAllprice(Request.Cookies[&ShopUser&].Value);
a = getallprice.Tables[<span style="color: #].Rows[<span style="color: #][<span style="color: #].ToString();
Allprice.Text =
Page.ClientScript.RegisterStartupScript(this.GetType(), &alert&, &&script&location.replace(location.href);&/script&&);
}先来看第一行,Updatagoods是一个方法,将刚刚输入的商品数量按照前面js获取的商品ID”jsshopcarid”更新到数据库。接着第二行,dataset一下;GetList——一个方法,根据”jsshopcarid”获取商品ID。第三行:将商品ID给Goods_ID;下一行:dataset一下,根据前面的Goods_ID 获取GoodsInfo表中的对应商品数据。下一行就是获取商品单价了。到此位置,就有了商品单价,接着计算小计就简单多了,用前面js的cookie”goodsnum” * 刚获取的商品单价 In_Storeprice得到小计。接下来,就可以根据”jsshopcarid”Update一下。最后计算总价,之前说过,一个电脑只有一个ShopUser,因此你只需要根据ShopUser获取一下购物车表中的相同ShopUser的商品数据,就可以算出购物车中商品的总价。正如第八行:getAllprice是一个方法.
/// &summary&/// 计算总价/// &/summary&
public DataSet getAllprice(string str2)
return DbHelperSQL.Query(&select sum ([Goods_Money]) from [ShopCar] where [ShopUser] =& + str2);
}得到总价后,就将值直接给前台的label了.4.删除商品删除商品我用的方法是URL传值到新页面,这是购物车页的代码:
&a href=&deletepage.aspx?Goods_ID=&%#Eval(&Goods_ID&)%&& style=&text-decoration:color:&&删除&/a&点击删除后转到deletepage 页面,在这页面中后台写着如下代码:
bllShopCar.Delete( Convert.ToInt32(Request.QueryString[&Goods_ID&]));
Page.ClientScript.RegisterStartupScript(this.GetType(), &alert&, &&script&alert('删除成功!');location.href='ShoppingCar.aspx'; &/script&&);直接将Goods_ID删除就可以了。如果全部删除光了,就会显示上面第一张图片“您的购物车还是空的”。到此购物车功能全部结束。&#160;最后要说的是,在做这购物车功能之前,还不懂网购的流程,然后不断访问天猫淘宝,购物车流程试了一遍又一遍,再在网上看了一下大致实现方法,懂了一些原理。接着做这个的时候,很不如意,最闹心的就是控件不可以用,因此你会看到这个购物车中没有选择性下订单,也就是每个商品前的选择按钮,所以呢,要下就是一起下定单。很想知道天猫那种购物车的功能是怎么实现的,希望会的大牛能教教我,谢谢!ps:这是第二期了,以后还会继续发布的。、
无相关信息asp.net c# 购物车问题(主要是从一个页面向另一个页面添加所购物品,还有在另一个页面清空购物车,如下图_百度知道
asp.net c# 购物车问题(主要是从一个页面向另一个页面添加所购物品,还有在另一个页面清空购物车,如下图
com/zhidao/pic//zhidao/wh%3D600%2C800/sign=4b9b94cdc9ea15ce41bbe80f863016cb/a08b87df4fa8eb999f3dd.hiphotos.baidu.baidu://a://a.hiphotos.baidu://a.com/zhidao/wh%3D450%2C600/sign=9da879e3c0e/a08b87df4fa8eb999f3dd.hiphotos.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="http<a href="http.jpg" esrc="http
提问者采纳
义一个商品实体类,将选择要购买的商品实例类对象放到一个List里面。不明白可以继续问。操作Session可实现不同页面之间的读写,用Session保存即可
提问者评价
具体怎样做啊 代码能给我打一遍吗 能计算所购商品的金额吗,回答令我满意的话酌情加分
来自团队:
其他类似问题
为您推荐:
其他1条回答
清空则删除数据。加入购物车,加入购物车就向cookie中添加商品就是了。清空购物车,向数据库插入数据,就清空cookie。也可以存数据库可以用cookie存
您可能关注的推广回答者:回答者:
购物车的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 数据库软件sql server 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信