- 浏览: 62097 次
- 性别:
- 来自: 广州
文章分类
最新评论
上面我已经介绍过了 Profile的配置和简单应用了,如果大家上面没有学会的话下面我在来做一下高级一点的应用,我会从一开始创建数据库与配置一步一步地在说一遍:
这们要完成一个这样的功能:一个购物车,能添加商品和删除商品的操作
要一个描述商品的类 (ShopInfo.cs),一个购物车类 (ShopCart.cs),和一个页面显示商品信息 (default.aspx)
1. 这次我们先来创建数据库
在这个路径下: C:"WINDOWS"Microsoft.NET"Framework"v2.0.50727
v2.0.50727是跟据你的版本号解定的文件夹
这个下面有一个 aspnet_regsql.exe进行运行 -à 配置指定的数据库
Aspnet_regsql.exe- à 下一步 - à 下一步 ------ à 你的服务器的名字,用什么身份进行登录,可以在这里选择指定的数据库
这样就可以在指定的数据库中自动生成 profile与登录控件要用的表了
2. 项目中在 web.config中配置文件中配置 配置节
2.1 数据连接字符串
< connectionStrings >
< add name = "KuConnectionString " connectionString = "Data Source=localhost;Initial Catalog=ku;Integrated Security=True " providerName = "System.Data.SqlClient "/>
</ connectionStrings >
2.2 配置 profile 配置节
< profile defaultProvider = "MySqlProfileProvider ">
< providers >
< add name = "MySqlProfileProvider " connectionStringName = "KuConnectionString " applicationName = "/ " type = "System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a "/>
</ providers >
< properties >
< add name = "userName " type = "system.string " serializeAs = "Binary "/>
< add name = "cartShop " type = "ShopInfo " serializeAs = "Binary "/>
</ properties >
</ profile >
</ system.web >
解释:
第一个 <properties> 配置节
defaultProvider = "MySqlProfileProvider " 为当前默认的<Profile>中的配置这里用的
是我们自己配置的MySqlProfileProvider
connectionStringName = "KuConnectionString " 为2.1中的name(是数据库连接字符串的name)
下一个< properties >
< add name = "userName " type = "system.string " serializeAs = "Binary "/>//type 为指定的类型 serializeAs="Binary" 以什么类型存储(这里用的是以二进制存储)
< add name = "cartShop " type = "ShopCart " serializeAs = "Binary "/>
这个type是我们要用到的购物车类名为这个类的类型,以二进制进行存储
3. 上面的是准备工作已经做好了那就开始做我们要实现的功能吧
3.1一个描述商品的一个类: ShopInfo.cs 这个类中只有一些商品的属性与它的 get,set方法
代码:
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
[Serializable ]
/// <summary>
/// ShopInfo 的摘要说明
/// </summary>
public class ShopInfo
{
private int _ID;//ID 商品的
public int ID
{
get { return _ID; }
set { _ID = value ; }
}
private string _Name;//Name 商品的名字
public string Name
{
get { return _Name; }
set { _Name = value ; }
}
private decimal _Price;//Price 商品的价格
public decimal Price
{
get { return _Price; }
set { _Price = value ; }
}
private int _Count = 1;//Count 商品的数量
public int Count
{
get { return _Count; }
set { _Count = value ; }
}
// 构造方法
public ShopInfo(int id,string name,decimal price) {
_ID = id;
_Name = name;
_Price = price;
}
}
3.2一个描述购物车类: ShopCart.cs 这个类中是用来操作买商品与删除商品一系列的操作,这里我们用的是 hashTable进行存储商品数据的
代码:
using System;
using System.Data;
using System.Configuration;
using System.Web.Security;
using System.Collections;
[Serializable ]
/// <summary>
/// ShopCart 的摘要说明
/// </summary>
public class ShopCart
{
private Hashtable _HashShopCart = new Hashtable ();
public ICollection HashShopCart
{
get
{
return _HashShopCart.Values;
}
}
// 获取总价钱的属性
public decimal Total
{
get
{
decimal sum = 0;
foreach (ShopInfo shop in this .HashShopCart){
sum += shop.Count * shop.Price;
}
return sum;
}
}
// 添加方法
public void ADDShop(int id,string name,decimal price)
{
ShopInfo shopItem = (ShopInfo )_HashShopCart[id];//_HashShopCart[id];
//1. 购物车中是否有这个数据有就Count++
if (shopItem != null ){
shopItem.Count++;
_HashShopCart[id] = shopItem;
}
else //2. 没有就添加
{
_HashShopCart.Add(id,new ShopInfo (id,name,price));
}
}
// 删除一个商品的方法
public void Remove(int id)
{
ShopInfo shopItem =(ShopInfo ) _HashShopCart[id];
//1. 判断有这件商品
if (shopItem == null )
{
return ;
}
shopItem.Count--;
//2. 减完看看数量是否为0 如果为0就删除这个
if (shopItem.Count <= 0)
{
_HashShopCart.Remove(id);
}
}
}
4. 所有的都写好了现在就差显示页面了
一个显示商品的页面 default.aspx
这里的数据我就不写了大致是:商品 id,商品名,商品价格
之后呢,我用的是 GridView控件显示的 ,要在显示控件上加一个选择按钮,把这个文本改成‘购买‘ 要用这个选择按钮的选择事件: SelectedIndexChanged 在这个事件中写上:
获取选中行的数据;
int id = int .Parse(gvGoodsInfo.SelectedDataKey.Value.ToString());
string name = gvGoodsInfo.SelectedRow.Cells[1].Text;
string prices = gvGoodsInfo.SelectedRow.Cells[2].Text;
decimal price = decimal .Parse(prices);
// 开始放到Profile中(如果上面没有问题的话那你的数据库中就有选择的这些数据了)
Profile.shopCart.ADDShop(id, name, price);
BindShopCart();
非常简单吧:
还可以取出邦定到其它的控件就行显示如:
private void BindShopCart()
{
if (Profile.shopCart == null )
{
Profile.shopCart = new ShopCart ();
}
gvShopCart.DataSource = Profile.shopCart.HashShopCart;
gvShopCart.DataBind();
}
在这个GridView控件上也加一个选择按钮进行删除商品的操作:
protected void gvShopCart_SelectedIndexChanged(object sender, EventArgs e)
{
//gvShopCart 的选择事件(删除商品)
string id = this .gvShopCart.SelectedDataKey.Value.ToString();
Profile.shopCart.Remove(int .Parse(id));
this .BindShopCart();
}
这样一个简单的购物车就完成了,上面的还有很多功能不完善,希望你们自己去完善一下。
虽然购物车已经实现了,但只能是一个匿名用户的购物车,如果是一个登录用户那用的时候只能是购买一件商品了,这样肯定是不行的,那要怎样解决它呢,下次介绍一下 < membership> 的配置与登录控件的一些操作。使用登录控件就可以轻松的解决了上诉的问题了
发表评论
-
C#中怎么判断一个数组中是否存在某个数组值 转
2011-10-20 10:02 2239C#中怎么判断一个数组中是否存在某个数组值 作者: 李嘉 ... -
C#开发和调用Web Service (转)
2011-08-12 22:43 11871.1 、 Web Service 基 ... -
profile 实现购物车 实例(二)(转)
2011-07-29 14:27 1058上个例子,我见了两个类,一个商品类。一个购物车类。并把购物 ... -
profile 实现购物车 实例(一)(转)
2011-07-29 14:25 1013首先要了解什么是Profile,不了解就查下资料跟MSDN ... -
Profile的简单的配置与操作(转)
2011-07-29 14:20 1053下面由我来给大家配置一个 Profile与 Profile ... -
浅析Microsoft .net PetShop程序中的购物车和订单处理模块(Profile技术,异步MSMQ消息)
2011-07-29 11:55 1404对于Microsoft .net PetShop程序中的购物车 ... -
大型网站访问性能处理(转集)
2011-07-28 14:14 1082高性能网站性能优化与系统架构(ZT) 说说大型高并发高 ... -
不使用DalFactory和IDAL,支持多种数据库应用
2011-07-27 23:23 2MS的PetShop示例应用程序的“多层架构”被很多.NET开 ... -
ASP.NET页面刷新方法总结(顺便散分)
2011-07-07 15:17 1198先看看ASP.NET页面刷新的实现方法: 第一: ... -
c#将对象序列化为字符串和将字符串反序列化为对象
2011-06-30 11:23 1578c#将对象序列化为字符串和将字符串反序列化为对象 a ... -
provider: SQL 网络接口, error: 26 解决方法 图
2011-06-03 10:06 6618在建立与服务器的连接时出错。在连接到 SQL Server 2 ... -
Server.Execute和#include相异之处
2011-05-17 13:37 728server 是 ASP 中的一个内置对象, 有一个方法为 ... -
Response.Redirect(),Server.Transfer(),Server.Execute()的区别.docx
2011-05-17 11:48 12001 、 Response.Redirect(): ... -
win7下装不了vs2008的情况
2011-04-09 01:11 723vs2005与vs2008都是镜像文件 ,所以用了虚拟光驱,装 ... -
ASP.NET + SQL 分页存储过程以及对应的类
2011-03-21 16:57 1009ASP.NET + SQL 分页存 ... -
ASP.NET 错误页处理
2011-03-19 21:46 1009ASP.NET 提供三种用于在出现错误时捕获和响应错误的主 ... -
asp.net 伪静态 html 后面带参数
2011-03-16 21:22 2051例如:faq_1.html?id=2 相关设置请在网上 ... -
DataFormatString的使用
2011-01-05 09:16 884在 我们从业务逻辑层获得数据实体时候,接下来的事情就是要绑定 ... -
ASP.NET 伪静态 静态页 访问不了 方法
2010-12-31 11:14 2010本站基于asp.net+UrlRewriter来实现网站伪 ... -
五种常见的ASP.NET安全缺陷
2010-11-25 23:41 872保证应用程序的安全 ...
相关推荐
通过以上分析,我们可以看到ASP.NET Profile在实现购物车功能中的重要角色,以及如何结合Session和数据库存储来实现购物车的匿名和持久化。这样的设计使得用户在购物过程中享受到无缝的体验,无论他们是匿名浏览还是...
在"哈希表+Profile实现购物车全流程源代码"这个教程中,我们将深入探讨如何利用哈希表优化购物车系统的性能。 首先,购物车系统的核心功能包括添加商品、删除商品、更新商品数量以及计算总价。这些功能都需要高效的...
购物车Profile会记录每件商品的数量、价格、颜色、尺寸等属性,以及用户可能进行的操作,如调整数量或移除商品。购物车状态通常会通过cookies或session在用户的浏览器上持久化,以便用户在浏览过程中保持其选择。 ...
5. **清空购物车**:提供一个“清空购物车”按钮,一键删除Profile中的所有购物车信息,实现购物车的快速重置。 6. **结算流程**:在用户准备结算时,可以将Profile中的购物车数据转化为订单对象,进行后续的订单...
用asp.net技术做的购物车
许多ASP.NET应用程序需要跨访问的用户属性跟踪功能,在ASP.NET1.1中,我们只能人工实现这一功能。但如今,使用 ASP.NET 2.0的Profile对象,这个过程变得异常简单。Stephen Walther将验证该对象,并向你展示如何使用...
经典的购物车系统: 关键词: Internet 网上书店开发 购书系统 开发一套网上购书系统,可以让顾客通过浏览器浏览网站售书目录,从而挑选自己满意的图书,并下订单购买。而网站后台人员需要维护网站会员信息、书籍...
### 网上购物车数据库设计相关知识点 #### 一、概述 网上购物店的数据模型主要包括以下几个关键元素:产品(Product)、账户(Account)、订单(Order)。这些元素之间通过多种表进行关联,确保数据的一致性和完整性。与...
在用户状态管理方面,Pet Shop 4利用ASP.NET 2.0的Custom Oracle和SQL Server Profile Providers,实现包括购物车在内的用户状态跟踪。在提升性能方面,SqlCacheDependency被用于数据库级别的缓存更新,确保数据的...
为了实现购买功能,J2ME应用可能需要与支付网关集成,如使用SSL加密传输信用卡信息,或者通过第三方支付平台如PayPal进行支付。 6. **错误处理和用户体验**:考虑到网络不稳定性和设备限制,良好的错误处理机制至关...
开发者将构建一个Web应用程序,允许用户浏览CD目录、搜索产品、添加到购物车并进行在线购买。使用NetBeans的Java EE支持,可以轻松创建Servlets和JSP(JavaServer Pages)页面,实现后端逻辑。同时,需要掌握JDBC...
6. **会员和角色管理**:ASP.NET 2.0内置了安全框架,包括 Membership、Roles 和 Profile,方便处理用户认证和授权。 7. **AJAX支持**:虽然ASP.NET 2.0本身不包含完整的AJAX支持,但可以通过UpdatePanel控件实现...
J2ME的KVM(K Virtual Machine)虚拟机允许代码在不同的设备上运行,而 MIDP(Mobile Information Device Profile)则提供了用户界面和网络连接等基本功能。 接着,论文探讨了在线销售系统的关键技术,如数据传输...
此外,还使用了ASP.NET 2.0的Profile Providers来管理用户状态,包括购物车信息等。 ##### 4. **Master Pages和新UI组件** 为了实现统一的界面风格,Pet Shop 4采用了ASP.NET 2.0中的Master Pages特性来替换原有的...
4. **Profile Providers**:PetShop 4利用ASP.NET 2.0的Profile Providers来管理用户状态,包括购物车信息等,提供了强大的用户个性化设置功能。 5. **Master Pages**:引入Master Pages技术,实现统一的界面布局,...
3. 利用SpringBoot的Profile功能,实现开发、测试和生产环境的配置切换。 4. 引入Swagger UI,生成API文档,便于前后端协作。 5. 代码规范与版本控制,如Git,保证团队协作的高效性和代码质量。 总结,Mall项目作为...
在Android应用开发中,集成Facebook服务能够为用户提供方便的社交体验,例如登录、分享等内容。本文将详细讲解如何在Android项目中实现Facebook登录功能。 首先,为了集成Facebook SDK,我们需要在Facebook开发者...
【鲜花配送系统】是基于ASP.NET 2.0技术构建的一款电子商务应用,它主要用于实现鲜花的在线销售、订单处理和配送服务。ASP.NET 2.0是微软开发的一个强大且高效的Web应用程序框架,用于构建动态网站、Web应用程序和...
4. **购物车(Shopping Cart)**:实现添加商品到购物车、查看购物车内容和结算功能。可以使用服务(Service)来存储购物车状态,使用`ngModel`双向数据绑定更新购物车信息。 5. **登录/注册(Login/Signup)**:...