c版网上购物系统
目录
一、需求分析
需求概述
随着市场经济的逐渐形成,全球化经济已在国内迅速发展起来。以往的销售
模式正在受到空前的挑战:人们已经对去固定的场所、购买(出售)固定的物品的交易方式所带来的不便越来越感到不满,交易时间长、效率低。高额的运费、销售场地的凭租费等繁多的额外开支也给商家带来沉重的成本支出。为了适应市场、适应经济前进的步伐,买家和商家都在努力积极地寻找一种能够带来高效率、低成本销售模式。计算机及世界互联网的飞速发展使得这种新的销售模式成为可能。近来网上商城已慢慢被人们所熟悉,网上购物这种生活方式已悄然形成。网上商城使得商家可以把商店开到互联网上来、而买家也可以到互联网上选择购买自己喜欢的东西。网上商城不需要商店的凭租费;新商品可以用最短的时间吸引顾客的眼球,因为它不需要那么长的运输时间。网上商城为商家节省了大笔的运输费用、场地凭租费等额外成本,同时也为买家带来了无穷的方便性。因为它不需要你花上半天活一天的时间去商场在玲郎满目的众多商品中选择你需要的东西。网上商城使得“买东西、不出门”成为现实。
随着计算机技术、通信技术的日益发展,互联网的逐步深入与应用,网上商城越来越多的出现在我们的身边,它直接作为一种先进的交易方式,被越来越多的人所接受。网上购物最大程度地方便了用户,你可以通过WWW 浏览器实现WEB 购物。
网上购物不仅改变了公司进行运作的模式,使网上商城成为传统商务的补充和发展,也使人们改变了消费的观念和消费习惯。自从几十年前电子计算机的出现,就为网上购物的发展创造了客观条件。但是它的发展还要借助于网络,所以其快速发展是在因特网的广泛应用上。可以预见,网上购物将成为商业普及、贸易的主流,必将影响着千家万户的生活和消费行为,并日益成为社会商业贸易活动的重要形式
。 功能简介
用户可以登陆系统游览商品信息,图片,将想要购买的物品放入购物车,然后支付账单,收到货物后可以对购买的货物进行评价。
商家可以登陆系统管理商品,比如增加商品信息,可以查看商品销售量和库存量,查看买家留言。
网上购物系统功能结构图
二、数据库设计
确定联系集
根据前面对系统进行的分析,已经初步了解了网上购物系统的数据处理流程,找出与系统有关的各个实体及其相互联系如下:
用户(用户名,用户密码)
美食(美食编号,美食名字,美食价格,用户名)
家电(家电编号,家电名字,家电价格,用户名)
美食(百货编号,百货名字,百货价格,用户名)
销售(销售编号,销售物品名,销售地址,商家名)
评价(评价信息,用户名) 画出E-R 图 用户信息图如下:
商家信息图如下:
图2-2-2商家实体集E-R
图
美食信息图如下:
家电信息图如下:
百货信息图如下:
销售信息图如下:
评价信息图如下:
图2-2-7评价实体集E-R 图
网上购物系统总E-R 图
根据上面对实体联系的分析,可以画出E-R 图如下:
n
n
1
n
1
1
网上购物系统总三、数据表设计
用户表
1
1
n
m
商家表
美食表
家电表
百货表
销售表
评价表
四.windows窗体应用程序
studio2010连接数据库sql sever2008
代码解释:创建SqlConnection的对象conn为了连接数据库(本人电脑名为YY,通过sql sever身份验证连接数据库(登陆名:sa,密码:123),数据库名为ShopOnlineyy)SqlConnection conn = new SqlConnection("Server=YY-PC;User Id =sa;Pwd
=123;DataBase=ShopOnlineyy");
如果Sqlconncection对象conn的赋值有误,就会出现下面的程序错误:在与sql sever 进行连接时出现错误,无法打开到sql sever的连接。
登陆界面
代码解释:Form1为登陆界面,Form2为用户主界面,Form3为商家主界面。if语句进行选择判断,如果没有输入用户名,密码或者用户名,密码不正确,程序将弹出“错误提示”的窗体。
程序代码如下:
private void label1_Click(object sender, EventArgs e)
{
= "用户名称";
}
private void button1_Click(object sender, EventArgs e)
{
if ==
{
("用户名称不能为空!", "错误提示", , ;
return;
}
if == "小李" && == "小明" && == "小军" && == "小刘" && == "yy" && == true)
{
Form2 f2 = new Form2();
();
= false;
}
else
if == "大李" && == "大黄" && == "大刘" && == "123" && == true)
{
Form3 f3 = new Form3();
();
= false;
}
else
{
("用户名称或密码不正确!", "错误提示", , ; }
}
private void label2_Click(object sender, EventArgs e) {
= "用户密码";
= ;
}
private void button2_Click(object sender, EventArgs e) {
= "退出";
();
}
用户添加商品界面
代码解释:comboBox1下选择物品种类:美食,家电,百货。选择家电。连接到数据库,并在家电表中插入所选家电名字,价格。程序中()) > 0,判断在数据库中命令是否执行,如果满足条件则成功在数据库中添加数据。
程序如下:
private void Form8_Load(object sender, EventArgs e)
{
= ;
str = new string[] { "美食", "家电", "百货" };
= str;
= 0;
}
private void button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("Server=YY-PC;User Id =sa;Pwd =123;DataBase=ShopOnlineyy");
if == str[0])
{
string strsql = "insert into 美食(name,prise) values('" + + "','" + + "')";
SqlCommand comm = new SqlCommand(strsql, conn);
if ==
();
if ()) > 0)
{
= "添加成功!";
}
else
{
= "添加失败!";
}
}
if == str[1])
{
string strsql = "insert into 家电(tname,tprise) values('" + + "'," + + ")";
SqlCommand comm = new SqlCommand(strsql, conn);
if ==
();
if ()) > 0)
{
= "添加成功!";
}
else
{
= "添加失败!";
}
}
if == str[2])
{
string strsql = "insert into 百货(yname,yprise) values('" + + "'," + + ")";
SqlCommand comm = new SqlCommand(strsql, conn);
if ==
();
if ()) > 0)
{
= "添加成功!";
}
else
{
= "添加失败!";
}
}
}
家电管理界面
代码解释:
Form9为本界面,通过sqlconnection对象连接数据库,单击查询,更新,删除分别调用数据库中select,update,delete方法,
程序如下:
public partial class Form9 : Form
{
public Form9()
{
InitializeComponent();
}
string str = "Server=YY-PC;User Id =sa;Pwd =123;DataBase=ShopOnlineyy";
SqlConnection sqlcon2;
SqlDataAdapter sqlada2;
private void Form9_Load(object sender, EventArgs e)
{
sqlcon2 = new SqlConnection(str);
sqlada2 = new SqlDataAdapter("select * from 家电", sqlcon2); ds2 = new DataSet();
(ds2);
= [0];
for (int
[i].SortMode = ;
= ;
;
}
private void button1_Click(object sender, EventArgs e)
{
sqlcon2 = new SqlConnection(str);
sqlada2 = new SqlDataAdapter("select * from 家电", sqlcon2);
= new SqlCommand("update 家电 set tname=@tname, tprise=@tprise where tno=@tno", sqlcon2);
"@tname", , 10, "tname");
"@tprise", , 10, "tprise");
SqlParameter"@tno", ;
= "tno";
= ;
(ds2);
for (int i = 0; i < [0].; i++)
{
[0].Rows[i]["tname"] = [i].Cells[1].();
[0].Rows[i]["tprise"] = [i].Cells[2].();
}
(ds2);
= [0];
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if > 0)
{
int intID = (int)[].Cells[0].Value;
sqlcon2 = new SqlConnection(str);
sqlada2 = new SqlDataAdapter("select * from 家电 where tno =" + intID + "", sqlcon2);
ds2 = new DataSet();
(ds2);
if [0]. > 0)
{
= [0].Rows[0][1].ToString();
= [0].Rows[0][2].ToString();
}
}
}
private void button3_Click(object sender, EventArgs e)
{
sqlcon2 = new SqlConnection(str);
sqlada2 = new SqlDataAdapter("select * from 家电", sqlcon2); ds2 = new DataSet();
(ds2);
= [0];
}
private void button2_Click(object sender, EventArgs e)
{
if ("确实要删除该行吗", "询问", ==
{
string de = "delete from 家电 where tno =@tno";
string str = "Server=YY-PC;User Id =sa;Pwd
=123;DataBase=ShopOnlineyy";
SqlConnection sqlcon2 = new SqlConnection(str);