其实一开始我是写成word文档的,复制过来图片很难搞,可以直接下载来看
http://pan.baidu.com/s/1jGzYqma
这个攻略主要面向编程能力弱的同学,很多同学都认为编程很难,其实编程很简单,特别是找到类似我这种文章后,需要的只是你的耐心。为什么要用C#来讲呢,一开始是任务要求是以C#来设计程序,二是C#设计前台真的很简单,三是我们已经开始学C#,所以说有些基础的人看此文档可以快速开发程序,接下来就来展示21分钟教你用C#最简单的方式写数据库大作业(大雾)。。
编程所需:
(1) VS2012(这次的例子所使用)。
(2) C#程序设计及应用教程
一、数据库设计
这可以说是本次大作业最主要的工作了,这里就不详解了,根据你自己的需求分析设计好数据库,那我就跳过这步。
二、程序开发
我会以最简单的实现方式来讲解一下我们设计本次大作业所需的知识。
我们先说下C#吧,它给我的感觉就是熟悉又陌生,置于为什么上课老师都讲了,这是专门设计拿来打败JAVA的语言,它将拥有JAVA所有的特点,也有其没有的优点。
接着就是VS2012了,相信前几次上机,大家对其也是很熟悉了。然后是C#程序缺少不了的基本框架和各种类型的创建,如何不是很熟悉建议复习下前3章。
(1) WPF窗口
本次程序所有窗口都是WPF,因为我们要使用ADO.NETEntity Framework(微软建议的数据访问架构)所需。
本次只展示WPF窗口的建立,如果想了解更多的同学可以看书本的第7、8章。
首先你要创建一个WPF项目
这里就把工程名改为Demo,位置设置好你要放的地方,建立好后
会自动打开主窗口,.xaml后缀打开的就是前台,多了.cs后缀的就是这个主窗口的后台代码,建立好项目后我们可以先放着。
(2) 添加数据库
这项操作对应书本的第12章,困扰时编程和书本更配哦~
在WPF应用程序中,我们可以利用.NET框架提供的数据访问技术方便地对数据库进行各种操作,这里使用的是VS自带的SQL数据库,还有很多方法连接,我们就讲的是利用实体框架和LINQ to Entities访问数据库,其架构封装被称为EDM,ADO.NET实体数据模型。它的设计思路是让应用程序和实体数据模型交互,实体数据模型再和数据库交互。废话不多说直接上图:
右键项目名Demo,【添加】新建项,找到数据中的【基于服务的数据库】
记得更改数据库名,这里是Database。【添加】
选择【实体数据模型】
下一步,选择【空模型】
点击【完成】后可能会弹出一个警告框,不用理勾上【不再显示此信息】,这里就不展示了,因为我已经勾上了。。
接着右键Model1.edmx 选择【删除】,这是自动生成的空模型,并没有用。
到了这里我们数据库就建好了,就可以创建表了,在左侧可以看到我们的数据库,对着表右键【新建表】
属性的创建很简单,直接点击表格
填写属性名,选择姓名
(3) 主键的自增设置
一般情况下我们会给一个ID号然后让其每次添加数据后自动加+1。
先选中属性那行,设置【标识规范】为true即可,其他属性的长度也是类似这样更改的。
(4) 表的创建完成
当你设计好表后先要改表名
将【Table】改成自己想要的名字【名字】
然后就是最关键的动作那就是更新,每次操作完了一定要【更新】,要不你之前所做的都白做了,这样我们就完成了一个表。
(5) 外键的设置
对着外键【右键】,添加新外键
然后会发现有错
【Column】对应自己这个表的某个列,如我的name
【ToTable】对应另一个表的表名,这里我创建了第二个表Test
【ToTableColumn】对应另一个表的列,此处列名应该要相同而且还要是主键,具体可以问度娘。
然后记得更新!
(6) 创建实体数据模型
创建完了数据库就可以创建实体数据模型了,实体框架提供了数据库优先、模型优先、代码优先三种开发模型,这里使用数据库优先模型。
对着项目右键【添加】新建项,选择ADO.NET实体数据模型,记得改名。
选择数据库生成
直接下一步
选中所有表然后【完成】,然后可以看到
其中的直线就是我们设置的外键(没有可以不设置)。
(7) LINQ to Entities 访问实体对象
数据库和实体创建完成后我们就可以操作了。
(a) 首先我们要创建一个实体框架上下文,简而言之就是拿来操作数据库的类。
实体框架上下文的类是在我们创建实体数据模型时创建的,VS会根据你的数据库命名来创建出来。
实例化有二种方法,具体可以看书,这里讲的是using块,
using(var context=new DatabaseEntities())
{
….语句
};
看过前面几章的同学可能就会发现using块其实是用来运行后立即释放其所占用的资源,因为操作数据库会占用大量资源,我们需要操作后释放掉,二种方法也是不同的释放方式。
此刻VS2012可能会遇见未发现DatabaseEntities类,这是因为代码生成策略为无,你需先在Model界面下空白处点击下后将其改为默认值。
关闭后还不行,还需要将二处Context.tt和Model.tt删除
最后右键工程【重新生成】,记得先把Model.edmx界面更改后关掉保存
(b) 数据库的操作
这里对应为书上第5、12章,更多详情请阅读。
1. 数据的查询
这段代码是我使用的登录功能实现过程,某些同学注意变通不要全抄,会出错的!!!
接下来讲解下,其实为了进度我也没太仔细看LINQ和匿名类型的使用方法,总体而言就是使用简单,不用声明类型,就好像以前的Student封装,就可以简单的实现。
需要注意的就是:
(1)代码中的t是可以随便替换的。
(2)Sql_pw和sql_id还可以用中文替换且不用声明对象类型,因为它会自动对应属性对应的类型。
(3)q则是查询的结合体,你要操作某行时可以先将其ToList(),然后就像数据一样【0】,在.属性出来,属性名就是你取的名字。
2. 数据的添加
添加的数据没有报错为什么不见增加?
这里有个关键:那就是我们在VS看到的数据库是在项目包下的数据库文件,我们运行时是运行bin\Debug下的数据库文件,还有
这样每次运行项目下的数据库文件都会复制到bin\Debug下,所以我们的操作在关闭程序后是没有效果的。
3. 数据的更新和删除
这里就不讲了,其实就是将结果集当成map来操作,操作完就SaveChange(),具体参考书本。
(8) WPF窗口的使用
了解了数据库的操作,剩下的就是窗口的操作了,控件的具体操作可以参考书本第8章。这里讲下最基本的操作:
1. 控件的生成
先打开窗口前台,找到工具箱,直接拖进窗口!
如果找不到工具箱或者不小心关闭了可以在视图下打开。
2. 控件的监听
点击按钮后,点击闪电标志
给点击命名事件名称
然后回车即可
action方法就是那个按钮的点击事件监听。
3. 窗口的调用和隐藏
新建一个新的窗口名为DemoWindow
使用不同的方法可以看到是否会隐藏旧的窗口。
4. Datagrid控件
这个控件可以直接展示我们在数据库查询的结果,而且使用简单,只要给其一个名字再来一句话就可以实现。
到这里就靠你们自己了。。
如果发现有什么错误可以指点出来,本文仅供参考。