C#版网上购物系统.docx
《C#版网上购物系统.docx》由会员分享,可在线阅读,更多相关《C#版网上购物系统.docx(16页珍藏版)》请在冰豆网上搜索。
C#版网上购物系统
一、需求分析2
1.1需求概述2
1.2功能简介2
1.3网上购物系统功能结构图3
二、数据库设计3
2.1确定联系集3
2.2画出E-R图4
2.3网上购物系统总E-R图6
三、数据表设计7
3.1用户表7
3.2商家表7
3.3美食表8
3.4家电表8
3.5百货表8
3.6销售表9
3.7评价表9
四、windows窗体应用程序10
4.1visualstudio2010连接数据库sqlsever200810
4.2登陆界面11
4.3用户添加商品界面12
4.4家电管理界面15
五、总结17
一、需求分析
1.1需求概述
随着市场经济的逐渐形成,全球化经济已在国内迅速发展起来。
以往的销售模式正在受到空前的挑战:
人们已经对去固定的场所、购买(出售)固定的物品的交易方式所带来的不便越来越感到不满,交易时间长、效率低。
高额的运费、销售场地的凭租费等繁多的额外开支也给商家带来沉重的成本支出。
为了适应市场、适应经济前进的步伐,买家和商家都在努力积极地寻找一种能够带来高效率、低成本销售模式。
计算机及世界互联网的飞速发展使得这种新的销售模式成为可能。
近来网上商城已慢慢被人们所熟悉,网上购物这种生活方式已悄然形成。
网上商城使得商家可以把商店开到互联网上来、而买家也可以到互联网上选择购买自己喜欢的东西。
网上商城不需要商店的凭租费;新商品可以用最短的时间吸引顾客的眼球,因为它不需要那么长的运输时间。
网上商城为商家节省了大笔的运输费用、场地凭租费等额外成本,同时也为买家带来了无穷的方便性。
因为它不需要你花上半天活一天的时间去商场在玲郎满目的众多商品中选择你需要的东西。
网上商城使得“买东西、不出门”成为现实。
随着计算机技术、通信技术的日益发展,互联网的逐步深入与应用,网上商城越来越多的出现在我们的身边,它直接作为一种先进的交易方式,被越来越多的人所接受。
网上购物最大程度地方便了用户,你可以通过浏览器实现WEB勾物。
网上购物不仅改变了公司进行运作的模式,使网上商城成为传统商务的补充和发展,也使人们改变了消费的观念和消费习惯。
自从几十年前电子计算机的出现,就为网上购物的发展创造了客观条件。
但是它的发展还要借助于网络,所以其快速发展是在因特网的广泛应用上。
可以预见,网上购物将成为商业普及、贸易的主流,必将影响着千家万户的生活和消费行为,并日益成为社会商业贸易活动的重要形式
。
1.2功能简介
用户可以登陆系统游览商品信息,图片,将想要购买的物品放入购物车,然后
支付账单,收到货物后可以对购买的货物进行评价。
商家可以登陆系统管理商品,比如增加商品信息,可以查看商品销售量和库存量,查看买家留言。
1.3网上购物系统功能结构图
2.1确定联系集
根据前面对系统进行的分析,已经初步了解了网上购物系统的数据处理流程,找出与系统有关的各个实体及其相互联系如下:
用户(用户名,用户密码)
美食(美食编号,美食名字,美食价格,用户名)家电(家电编号,家电名字,家电价格,用户名)
美食(百货编号,百货名字,百货价格,用户名)销售(销售编号,销售物品名,销售地址,商家名)评价(评价信息,用户名)
2.2画出E-R图
用户信息图如下:
商家信息图如下:
商家
图2-2-2商家实体集E-R图
美食信息图如下:
美食
家电信息图如下:
百货信息图如下:
图2-2-5百货实体集E-R图
销售信息图如下:
图2-2-6销售实体集E-R图
评价信息图如下:
2.3网上购物系统总E-R图
根据上面对实体联系的分析,可以画出E-R图如下:
三、数据表设计
3.1用户表
字段名
别名
数据类型
字段限制
用户名字
sname
Varchar(50)
Primarykey
用户密码
spsd
Varchar(50)
Notnull
3.2商家表
字段名
别名
数据类型
字段限制
商家名字
ssname
Varchar(50)
Primarykey
商家密码
sspsd
Varchar(50)
Notnull
3.3美食表
字段名
别名
数据类型
字段权限
美食编号
tno
int
Primarykey
美食名字
tname
Varchar(50)
Notnull
美食价格
tprise
Varchar(50)
Notnull
用户名
tuse
Varchar(50)
Foreignkey
3.4家电表
字段名
别名
数据类型
字段权限
豕电编号
yno
int
Primarykey
家电名字
yname
Varchar(50)
Notnull
家电价格
yprise
Varchar(50)
Notnull
用户名
yuse
Varchar(50)
Foreignkey
3.5百货表
字段名
别名
数据类型
字段权限
百货编号
eno
int
Primarykey
百货名字
cname
Varchar(50)
Notnull
百货价格
cprise
Varchar(50)
Notnull
用户名
cuse
Varchar(50)
Foreignkey
3.6销售表
字段名
别名
数据类型
字段权限
销售编号
xnumber
Varchar(50)
Primarykey
销售名字
xname
Varchar(50)
Notnull
销售地址
address
Varchar(50)
Notnull
商家名
xuse
Varchar(50)
Foreignkey
3.7评价表
字段名
别名
数据类型
字段权限
评价信息
informatio
Varchar(100)
Primarykey
用户名
puse
Varchar(50)
Foreignkey
4.windows窗体应用程序
4.1visualstudio2010连接数据库sqlsever2008
代码解释:
创建SqlConnection的对象conn为了连接数据库(本人电脑名为丫丫,通过sqlsever身份验证连接数据库(登陆名:
sa,密码:
123),数据库名为ShopOnlineyy)
SqlConnectionconn=newSqlConnection("Server=YY-PC;UserId=sa;Pwd=123;DataBase=ShopOnlineyy");
如果Sqlconncection对象conn的赋值有误,就会出现下面的程序错误:
在与sqlsever进行连接时出现错误,无法打开到sqlsever的连接。
privatevoidconboBox1edlrLdeKChang.*d(objectsenderpEventArjee)
(coroboBox].Text=s[0])
stringstr="Server=YY-PC;UserId=ss;Pvd-i23;Da±aBaff&=ShQp0nlineyyrt;SqlConnectionsqlcon=nevSqlConntction(str>;
SqlD:
at^Adaptersqlada三nevSqlDat-aAdapter("seLeet*from没倉sqlcon):
DataSetds-newDataSel();
sqlada.FilHds,
dataGridVievLDataSouz
4.2登陆界面
代码解释:
Forml为登陆界面,Form2为用户主界面,Form3为商家主界面。
if语句进行选择判断,如果没有输入用户名,密码或者用户名,密码不正确,程序将弹出“错误提示”的窗体。
程序代码如下:
privatevoidlabel1Click(objectsender,EventArgse)
{label1.Text="用户名称";
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(textBox1.Text==string.Empty)
{
MessageBoxShow("用户名称不能为空!
","错误提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
return;
}
if(textBox1.Text=="小李"&&textBox1.Text=="小明"&&textBox1.Text=="
小军"&&textBox1.Text=="小刘"&&textBox2.Text=="yy"&&radioButton1.Checked==true)
{
Form2f2=newForm2D;
if(textBoxl.Text=="大李"&&textBoxl.Text=="大黄"&&textBoxl.Text
=="大刘"&&textBox2.Text=="123"&&radioButton2.Checked==true)
{
Form3f3=newForm3();
f3.Show();
}
else
{
this.Visible=false;
MessageBoxShow(”用户名称或密码不正确!
",”错误提示"MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
privatevoidlabel2_Click(objectsender,EventArgse)
{
label2.Text="用户密码";
label2.ForeColor=Color.Black;
this.Close();
}
4.3用户添加商品界面
海加
种类:
家电
电饭煲
价榕:
4500
添加威功
代码解释:
boBoxI下选择物品种类:
美食,家电,百货。
选择家电。
连接到数据库,并在家电表中插入所选家电名字,价格。
程序中
Convert.Tolnt32(m.ExecuteNonQuery())>0,判断在数据库中命令是否执行,
如果满足条件则成功在数据库中添加数据。
程序如下:
privatevoidForm8_Load(objectsender,EventArgse)
{匚
boBox1.DropDownStyle=boBoxStyle.DropDownList;
str=newstring[]{"美食",“家电","百货“};
boBox1.DataSource=str;
boBox1.SelectedIndex=0;
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
SqlConnectionconn=newSqlConnection("Server=YY-PC;UserId=sa;Pwd=123;DataBase=ShopOnlineyy");
if(boBox1.Text==str[0])
{
stringstrsql="insertinto美食(name,prise)values('"+textBox1.Text
+"','"+textBox2.Text+"')";
Sqlmandm=newSqlmand(strsql,conn);
if(conn.State==ConnectionState.Closed)
conn.Open();
if(Convert.ToInt32(m.ExecuteNonQuery())>0)
{label3.Text="添加成功!
“;
}
else
{label3.Text="添加失败!
“;
}
conn.Close();
stringstrsql="insertinto家电(tname,tprise)values('"+textBox1.Text+":
"+Convert.ToDecimal(textBox2.Text)+")";|
Sqlmandm=newSqlmand(strsql,conn);
if(conn.State==ConnectionState.Closed)
conn.Open();
if(Convert.Tolnt32(m.ExecuteNonQuery())>0)
}
else
{
label3.Text="添加失败!
“
}
conn.Close();
+textBoxl.Text
stringstrsql="insertinto百货(yname,yprise)values('"
+":
"+Convert.ToDecimal(textBox2.Text)+")";|
Sqlmandm=newSqlmand(strsql,conn);
if(conn.State==ConnectionState.Closed)
conn.Open();
if(Convert.ToInt32(m.ExecuteNonQuery())>0)
{
label3.Text="添加成功!
";
}1
else
{
label3.Text="添加失败!
“
}
conn.Close();
}
}
4.4家电管理界面
详细信息
名称:
电饭煲价格:
:
4600
yprise
«
\2
电饭煲
4500
■d译
査询
代码解释:
Form9为本界面,通过sqlconnection对象连接数据库,单击查询,更新,删
除分别调用数据库中select,update,delete方法,
程序如下:
publicpartialclassForm9:
Form
{
publicForm9()
{
Initializeponent();
}
tringstr=
"Server=YY-PC;UserId=sa;Pwd=123;DataBase=ShopOnlineyy"
s
SqlConnection
sqlcon2;
SqlDataAdaptersqlada2;
DataSetds2;
privatevoidForm9_Load(objectsender,EventArgse)
{
sqlcon2=newSqlConnection(str);
sqlada2=newSqlDataAdapter("select*from家电",sqlcon2);
ds2=newDataSet();
sqlada2.Fill(ds2);
dataGridViewl.DataSource=ds2.Tables[0];
for(inti=0;idataGridView1.Columns[i].SortMode=
DataGridViewColumnSortMode.NotSortable;
dataGridView1.SelectionMode=DataGridViewSelectionMode.FullRowSelect;
dataGridView1.DefaultCellStyle.SelectionBackColor=Color.LightSkyBlue;
}
privatevoidbutton1_Click(objectsender,EventArgse)
ds2.Tables.Clear();
sqlcon2=newSqlConnection(str);
sqlada2=newSqlDataAdapter("select*from家电",sqlcon2);
sqlada2.Updatemand=newSqlmand("update家电settname=@tname,
tprise=@tprisewheretno=@tno",sqlcon2);
sqlada2.Updatemand.Parameters.Add(
"@tname:
SqlDbType.Char,10,"tname");
sqlada2.Updatemand.Parameters.Add(
"@tprise",
SqlDbType.Char,10,
"tprise");
SqlParameterprams_tno=sqlada2.Updatemand.Parameters.Add("@tno",
SqlDbType.Int);
prams_tno.SourceColumn="tno";
prams_tno.SourceVersion=DataRowVersion.Original;
sqlada2.Fill(ds2);
for(inti=0;i{
ds2.Tables[0].Rows[i]["tname"]=
dataGridView1.Rows[i].Cells[1].Value.ToString();
ds2.Tables[0].Rows[i]["tprise"]=
dataGridView1.Rows[i].Cells[2].Value.ToString();
「}
sqlada2.Update(ds2);
dataGridViewl.DataSource=ds2.Tables[0];
}
intintID=(int)dataGridView1.Rows[e.RowIndex].Cells[O].Value;
sqlcon2=newSqlConnection(str);
sqlada2=newSqlDataAdapter("select*from家电wheretno="+intID+
"",sqlcon2);
ds2=newDataSet();
sqlada2.Fill(ds2);
if(ds2.Tables[0].Rows.Count>0)
textBoxl.Text=ds2.Tables[0].Rows[0][1].ToString();
textBox2.Text=ds2.Tables[0].Rows[0][2].ToString();
}
}
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
sqlcon2=newSqlConnection(str);
sqlada2=newSqlDataAdapter("select*from家电",sqlcon2);
ds2=newDataSet();
sqlada2.Fill(ds2);
dataGridViewl.DataSource=ds2.Tables[0];
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
if(MessageBoxShow("确实要删除该行吗?
","询问",MessageBoxButtons.YesNo)==DialogResult.Yes)
「{
stringde="deletefrom家电wheretno=@tno";
stringstr="Server=YY-PC;UserId=sa;Pwd=123;DataBase=ShopOnlineyy";
SqlConnectionsqlcon2=newSqlConnection(str);|
Sqlmand=newSqlmanc(de,sqlcon2);
.Parameters.Add("@tno",SqlDbType.Char,10);
sqlcon2.Open();|
foreach(DataGridViewRowrowindataGridViewl.SelectedRows)
{1
.Parameters]"@tno"].Value=row.Cells[0].Value;
dataGridViewl.Rows.Remove(row);
.ExecuteNonQuery();
}
sqlcon2.Close();
}
}
五、总结