近年来,农产品的销售环节成为我国农业发展的瓶颈,农产品的结构性、季节性、区域性过剩,是农产品市场存在的普遍性问题。农村地区由于交通、通信不够发达,难以得到及时、准确、可靠的市场需求信息。因此,如何建立高效的农产品流通新模式,已成为降低我国农产品交易成本和促进农民增收的重大现实问题。而电子商务,作为一种以计算机网络为基础的商务信息系统,则为解决以上问题提供了成熟完善的技术条件。电子商务与传统产业的有机结合,传统企业利用网络创造效益,建立一个农产品电子交易系统已属必然。本文的目的就是为广大农民用户研究设计一个方便使用、切合实际、交互性强的农产品电子交易系统。
1 .NET概述
微软公司2000年正式推出.NET,统一了编程类库,是其XML Web服务平台,提供了对下一代网络的通信标准,对可扩展标记语言(XML)的完全支持,使应用程序的开发变得更简单。引用Microsoft总裁兼首席执行官史蒂夫.鲍尔墨的话:“.NET 代表了一个集合、一个环境、一个编程的基本结构,作为一个平台来支持下一代的互联网”。简单扼要地表明了.NET的特性: .NET是一个理想化的未来互联网环境,微软的构想是一个“不再关注单个网站、单个设备与因特网相连的互联网环境,而是要让所有的计算机群、相关设备和服务商协同工作”的网络计算环境,简而言之,互联网提供的服务,要能够完成更高程度的自动化处理[1]。.NET的最终目的就是让用户在任何地方、任何时间,以及利用任何设备都能访问他们所需要的信息,而用户不需要知道具体细节,用户只需发出请求,而所有后台的复杂性是完全屏蔽的。
2 系统的可使用性分析
对于农产品交易系统而言,影响系统可使用性的主要因素有:可访问性、访问效率、内容表达以及内容的质量等。在农产品交易系统的设计标准中,可访问性和效率是两个最重要的标准。所以在系统建设时应考虑如下内容:
(1)好的导航功能。判断系统的导航模式是否最佳的因素主要有:前后的一致性、前后关系安排、可访问性、使用户很容易适应、及时性等。导航模式有很多种,例如:站点地图,返回主页,返回前一页,浏览一个下拉菜单中的项目等。对于农产品交易系统来说,系统的网页数目比较多,所以在系统建设时,应该考虑提供站内搜索引擎服务,这样可以方便用户快捷地在站内查找所需的信息。
(2)信息的分类和显示。对于本系统而言,信息首先分为十个大类:水稻专题、小麦专题、棉花专题、玉米专题、蔬菜专题、大豆专题、水果专题、水产专题、农药化肥、苗木花卉,然后根据这十个大类又分成了很多小类,比如水果专题分成了:苹果、葡萄、梨、西瓜、菠萝、橘子等。例如供应信息中“大量供应黄金梨”就属于大类中的“水果专题”,小类中的“梨”。
(3)页面下载的速度应不超过10 s。如果页面的加载速度太慢,用户有可能放弃浏览。而页面内容质量只有在阅读以后才能正确评价,否则,网页的内容或者表达形式就会失去相应的意义。
(4)内容的组织结构。对于一个逻辑化的站点组织,用户可以预见在哪个页面才能查找到他们所需的信息。系统的内容组织结构可以使用以下模式:序列模式(按照次序来组织信息)、层次模式(用树型的层次结构来组织表达复杂的信息)、格子模式(按照格子的形式组织信息)等。本系统采用多种模式相结合的方式来组织农产品的信息,因为农产品交易系统的头部控件对所有用户都是可见的,而头部控件包括很多频繁使用的功能,例如站内搜索、首页、商贸中心等等,所以用户无论处于系统中的哪个页面,都可以通过系统的头部控件中的站内搜索来查找自己感兴趣的农产品信息,也可以通过系统的头文件中的“首页”来返回系统的主页面。
3 系统设计的关键技术
本系统的设计目标是以B/S体系结构作为基本架构,创建一个C to C 模式的电子交易系统。操作系统采用Windows XP, WEB服务器采用IIS5.1(Internet Information server),用ADO.NET实现对数据库的存取,用C# 编写ASP.NET 程序。
3.1购物车
对于每个会员,在浏览供应信息后,如果找到自己满意的产品,则可点击信息下方的购物车,进入自己的购物车页面,如图1所示。购物车可以帮助会员管理订单、个人信息和暂存商品,并为会员提供各种自助管理订单的服务。 在购物车页面中,显示了会员的级别(普通会员或黄金会员),列出了会员所选择商品的名称、数量、单价以及总的价格。会员可以自行管理自己的购物车,例如,可以修改商品、删除不需要的商品。当会员选购了商品放入购物车后,如果会员对该商品未支付,购物车都会将其所选择的商品一直保存着。
首先获取会员的购物车,从Hashtable表中,将指定的商品从购物车中移除,其中,删除按钮(lnkbtnDelete)的CommandArgument参数值为商品ID代号,利用Session语句更新购物车。代码如下:
protected void lnkbtnDelete_Command(object sender, CommandEvent-Args e)
{
hashCar = (Hashtable)Session["ShopCart"];
hashCar.Remove(e.CommandArgument);
Session["ShopCart"] = hashCar;
Response.Redirect("shopCart.aspx");
}
protected void lnkbtnClear_Click(object sender,EventArgs e)
{
Session["ShopCart"] =null;
Response.Redirect("shopCart.aspx");
}
protected void gvShopCart_PageIndexChanging(object
sender,GridViewPageEventArgs e)
{
gvShopCart.PageIndex = e.NewPageIndex;
bind();
}
当会员在产品数量文本框中输入所要购买的产品数量时,激发Num_TextChanged事件。先获取购物车,找到用来输入数量的TextBox控件,获得用户输入的数量,得到该商品的ID号,最后更新hashTable表,更新购物车。代码如下:
protected void Num_TextChanged(object sender, EventArgs e)
{
hashCar = (Hashtable)Session["ShopCart"];
foreach (GridViewRow gvr in this.gvShopCart.Rows)
{
TextBox otb = (TextBox)gvr.FindControl("txtNum");
int count = Int32.Parse(otb.Text);
string BookID = gvr.Cells[1].Text;
hashCar[BookID] = count;
}
Session["ShopCart"] = hashCar;
bind();
}
3.2 利用ADO.NET访问数据库
这里以ADO.NET访问SQL SERVER 数据库(wzf)为例,说明ADO.NET访问数据库的具体步骤。在Default .aspx页添加一个Button控件和一个GridView控件,分别用于执行连接数据库和显示数据。具体代码如下:
public partial class _Default : System.Web.UI.Page
{
protected void ljbutton_Click(object sender, EventArgs e)
{
string ConStr = "server=(local);
user id=sa;
pwd=123;
database=wzf"; //设置连接字符串
SqlConnection con=new SqlConnection(ConStr);
con.Open(); //打开数据库连接
string Sqlstr="select * from Member";
//执行SQL命令
SqlDataAdapter ada=new SqlDataAdapter(Sqlstr,con);
DataSet ca=new DataSet();
ada.Fill(ca);
//用DataAdapter对象的执行结果填充DataSet对象的
数据表,命名为ca;
GridView1.DataSource=ca;
GridView1.DataBind(); //数据绑定
con.Close(); //关闭数据库连接
}
}
结果如图2所示。 农产品网上交易成功案例很多,例如:中国粮油食品信息网2003年网上采购成交470次,交易额达到5900万人民币和6000万美元。其中PP袋网上采购38次,占交易总比例的30%[2];农产品交易系统的建立为广大用户提供了及时、准确的供求信息,有利于更好的服务于“三农”。
参考文献
[1] 孙华平. SkyMouse天文服务搜索整合系统的设计与实现[D]. 北京:中国科学学院, 2007.
[2] 冯稚进.云南农产品电子商务发展研究[D].昆明:昆明理工大学,2007.