ASP.NET连接SQL数据库
作业要求
这是《ASP.NET》课程的最后大作业,集成了许多功能要求。
综合训练上机实验
[2016-5-25]
企业级.NET应用开发课程作业——基于.NET的图书销售系统
说明:类似于当当网、卓越网或china-pub的网上图书销售系统,简易版,要求完成的功能如下:
a)用户管理模块(登录功能);
b)商品管理模块(用户浏览商品功能、管理员对于商品的增、删、改、查管理功能);
c)购物车模块(购买功能);
d)订单管理模块(生成订单、订单管理)。
登录
登录用户的名称
使用VS自带的Login控件就能满足大多数要求,如果觉得不好看,就加一个自己喜欢的CSS样式。那么,登陆后如何调取登录用户的名字呢?先添加头文件
在使用
获取当前登录的用户的名称。这个Membership方法里还可以获取很多其他东西。看官们自己慢慢发掘。
判断是否登录
|
|
判断用户的登录登录角色
|
|
连接数据库
连接字符串型
这个方法和我的另一篇文章,《VB_SQL》中的方法非常类似,大家可以参考那篇文章。
Linq to SQL
这是ASP.net自带的,功能非常非常强大的方法,如果不学这个,那么你的ASP就可以说是白学了。
原理
Linq to SQL 的原理非常简单,就是把数据库里的表格,操作,信息,封装成class,保存到你的网站目录下,ASP操作封装的Class,再去更新数据库。差不多就是这个意思。
操作
- 新建App_Code文件夹,新建LINQ TO SQL类,然后打开服务器资源管理器,把你的数据库表格拖到页面里(很难用语言说明那个页面,你试试就知道了),保存。
- 新建LinqDataSource控件,打开智能选择键,选择数据源设置,选择你要的数据源,如果你第一步没有重命名的话,应该是“DataClassesDataContext”
- 各种DIY设置。
- GridView绑定数据源,在浏览器上看看效果吧。
操作数据库
改
|
|
增
|
|
改
GridView+ButtonField
- GridView中通过智能键添加ButtonField,类别是button。
- aspx端添加代码OnRowCommand=”GridView1_RowCommand”
- CS端,写如下代码12345678910111213141516171819202122232425262728293031protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e){if (Request.IsAuthenticated == true){int po;po = int.Parse(e.CommandArgument.ToString());//取出当前行号DataClassesDataContext db = new DataClassesDataContext();var results = from r in db.Books where r.Bno == int.Parse(GridView1.Rows[po].Cells[0].Text.ToString()) select r;if (results != null){foreach (var r in results){if (r.Bnumber >= 1){r.Bnumber--;}elseResponse.Write("<script language='javascript'>alert('缺货');</script>");}}db.SubmitChanges();DataBind();}else{Response.Write("<script language='javascript'>alert('请先登录');</script>");}}
GridView+BoundField
以下代码仅供参考
意外问题
使用LinqDataSource出现“找不到与ViewState中存储的原始值中的给定键相匹配的行,请确保”keys”字典包含与上一个Select操作返回的行对应的唯一键值”错误的解决办法
解决方法:
把LinqDataSource的EnableViewState属性设置为False。