手机版

ASP .网购物车实现过程详解

时间:2021-09-30 来源:互联网 编辑:宝哥软件园 浏览:

1、 将试验数据库附加到数据库管理系统中;数据库中的图书信息包含下列数据:

2、 新建一个网站,将形象文件夹复制到网站中;3、 在Default.aspx中,通过数据列表控件展示数据库中的所有数据,以行为主序,每行3列,单击购买按钮时,将商品的身份和数量保存到散列表中,并将散列表放置到会议中。

受保护的void DataList1_ItemCommand(对象源,datalist conventargs e){ string id=e.commandargument。tostring();哈希表ht;if(Session[' shop car ']==null){ ht=new Hashtable();总远视添加(id,1);session[' shop car ']=ht;} else { ht=(Hashtable)Session[' shop car '];if (ht .Contains(id)) { int count=int .解析(ht[id].ToString());ht[id]=计数1;session[' shop car ']=ht;回应。写(计数1);} else { ht .添加(id,1);session[' shop car ']=ht;} } } 4、 在Default.aspx中添加一个超链接,链接到shopcart.aspx,在shopcart.aspx中显示用户购买的商品信息。提示:

A、在购物车中先定义下列变量:

哈希表ht;数据表dt字符串[emailprotected]'数据源=。\ SQLEXPRESS初始目录=测试;集成安全性=真;SqlConnection consqlcommand cmdsqldata reader sdrb、页面中添加一个GridView。c、在页面加载中,将震颤性精神错乱(震颤谵妄的缩写)实例化,建立各列。

受保护的无效页面_加载(对象发送方,事件参数e){ dt=new DataTable();DataColumn col=new DataColumn();col . ColumnName=' id列数据类型=系统。类型。获取类型('系统。字符串');dt .列。添加(列);col=new DataColumn();col . ColumnName=' name列数据类型=系统。类型。获取类型('系统。字符串');dt .列。添加(列);col=new DataColumn();列列名=' Num列数据类型=系统。类型。获取类型('系统. int 32 ';dt .列。添加(列);col=new DataColumn();col . ColumnName=' price列数据类型=系统。类型。获取类型('系统single ');dt .列。添加(列);col=new DataColumn();列列名="总计";列数据类型=系统。类型。获取类型('系统single ');dt .列。添加(列);if(!IsPostBack){ Bind();} } public void Bind(){ if(Session[' shop car ']==null){ Response .写入(' scriptif(确认('你没有登录)窗口。位置='默认15。aspx ';else窗口。close();/script ');} else { ht=(Hashtable)Session[' shop car '];foreach(ht中的对象项key){ string id=item .ToString();int num=int .解析(ht[项目]。ToString());字符串sql='selectbook_name,book_info中的价格,其中book _ id=' ' idconn=new SqlConnection(conn字符串);cmd=new SqlCommand(sql,conn);conn . Open();sdr=cmd .ExecuteReader();中频(sdr .HasRows) { sdr .read();数据行=dt .NewRow();行[' id ']=id;行[' Num ']=Num;行['name']=sdr .getString(0);第['价格']行=浮动.解析(sdr[1]).ToString());行['total']=num*(浮点数).解析(sdr[1]).ToString()));dt .行。添加(行);} sdr .close();conn . Close();} GridView1 .数据源=dt .DefaultViewGridView1 .DataBind();}}D、这时可以看到用户购买的商品,但不能修改数量,也不能删除e、添加修改数量,删除商品功能,在aspx页面中定义显示数据表格(一种控件)中的各列:

asp3360 GridView ID=' GridView 1 ' runat=' server ' AutoGenerateColumns=' False ' Columns asp: bound field数据字段=' ID '标头文本=' ID '/asp: boundfield数据字段=' name '标头文本='名称/asp: boundfield数据字段=' price '标题文本='价格/asp3360 template field项模板asp: textbox runat=' server ' ID='文本框1 ' Text=' % # eval(' Num ')% ' ontextchanged=' Text box 1 _ Text changed ' AutoPostBack=' True '/ASP : textbox/item template/ASP : template field ASP : bound field数据字段=' total '标头Text='总计/asp3360 template field item template asp: button runat=' server ' ID=' button 1 ' CommandArgument=' % # Eval(' ID ')% ' Text='删除onclick=' button 1 _ Click '//item template/ASP : template field/Columns/ASP : gridviewf、为显示数据表格(一种控件)中的文本框添加文本已更改事件:

受保护的void textbox1_TextChanged(对象发送者,事件参数e){ Hashtable ht=(Hashtable)Session[' shop car '];if (ht==null)返回;for(int I=0;我是GridView1 .行。计数;i ) { string id=GridView1 .行[i].单元格[0].文字。tostring();回应. write(id);字符串编号=((文本框)GridView1 .行[i].FindControl('textbox1 ').文字;回应。写(“num”br/);ht[id]=num;} Session['店铺车']=ht;bind();}G、为按钮添加单击事件:

受保护的作废按钮1 _点击(对象发送方,EventArgs e) {字符串id=((按钮)发送方)。CommandArgumentHashtable ht=(Hashtable)Session['购物者汽车'];if (ht==null)返回;总远视移除(id);bind();}购物车代码:showcart.aspx.cs

使用系统;使用系统。集合。通用;使用系统Linq .使用系统网络.使用系统网络。用户界面使用系统。网络控件;使用系统。收藏品;使用系统。数据;使用系统数据。SqlClient公共部分类购物车:系统。网页数据表dt字符串连接='数据源=。\ \ SQLEXPRESSAttachDbFilename=f : \ \ test。中密度纤维板;集成安全性=真;连接超时=30;用户实例=真;SqlConnection connSqlCommand cmdSqlDataReader SDR受保护的无效页面_加载(对象发送方,事件参数e){ dt=new DataTable();DataColumn col=new DataColumn();col . ColumnName=' id列数据类型=系统。类型。获取类型('系统。字符串');dt .列。添加(列);col=new DataColumn();col . ColumnName=' name列数据类型=系统。类型。获取类型('系统。字符串');dt .列。添加(列);col=new DataColumn();列列名=' Num列数据类型=系统。类型。获取类型('系统. int 32 ';dt .列。添加(列);col=new DataColumn();col . ColumnName=' price列数据类型=系统。类型。获取类型('系统single ');dt .列。添加(列);col=new DataColumn();列列名="总计";列数据类型=系统。类型。获取类型('系统single ');dt .列。添加(列);if(!IsPostBack){ Bind();} } public void Bind(){ if(Session[' shop car ']==null){ Response .写入(' scriptif(确认('你没有登录)窗口。location="默认值。aspx”;else窗口。close();/script ');} else { ht=(Hashtable)Session[' shop car '];foreach(ht中的对象项key){ string id=item .ToString();int num=int .解析((ht[项])。ToString()));字符串sql='从图书信息中选择book_name,价格,其中book _ id=' ' idconn=新的SqlConnection(conn字符串);cmd=new SqlCommand(sql,conn);conn . Open();sdr=cmd .ExecuteReader();中频(sdr .HasRows) { sdr .read();数据行=dt .NewRow();行[' id ']=id;行[' Num ']=Num;行['name']=sdr .getString(0);第['价格']行=浮动.解析(sdr[1]).ToString());行['total']=num *(浮点数).解析(sdr[1]).ToString()));dt .行。添加(行);} sdr .close();conn . Close();} } GridView1 .数据源=dt .DefaultViewGridView1 .DataBind();}受保护的void textbox1_TextChanged(对象发送者,event args e){ Hashtable ht=(Hashtable)Session['商店汽车'];if (ht==null)返回;for(int I=0;我是GridView1 .行。计数;i ) { string id=GridView1 .行[i].单元格[0].文字。tostring();回应. write(id);字符串编号=((文本框)GridView1 .行[i].FindControl('textbox1 ').文字;回应。写(“num”br/);ht[id]=num;} Session['店铺车']=ht;bind();}受保护的作废按钮1 _点击(对象发送方,EventArgs e) {字符串id=((按钮)发送方)。CommandArgumentHashtable ht=(Hashtable)Session['购物者汽车'];if (ht==null)返回;总远视移除(id);bind();} } 制作一个简单的购物车就是这么简单,大家可以按照我的思路进行创作,在此基础上在添加一些功能。

版权声明:ASP .网购物车实现过程详解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。