Edi Wang

.NET and Azure Developer

Data Platform SQL Server, Entity Framework and Data Related Technologies

Entity Framework作类库项目无法使用using语法的解决办法

最近在玩Entity Framework。我们通常设计程序的时候,会把数据访问、业务逻辑层和客户应用分开做。所以我也希望将Entity Framework生成的Entities放在一个类库中,再用客户程序去使用这个封装好的类库。结果在客户程序里,使用C#自动回收资源的那个using语句的时候居然会报错: 错误消息是这个Entities类型没有实现IDisposable接口。这显然是不可能的。因为将EF放在单个项目中时,这样写是没有问题的。于是我看了下DiaosFixEnities这个类型: 发现这个类型继承自ObjectContext,再看一下ObjectContext类型: 确实集成了IDisposable。根据C#面向对象的特性,DiaosFixEnities应当已经继承了IDisposable接口,但未毛客户程序还报错说没有继承这个接口呢? 观察发现, …
C# Entity Framework

SQL Server 2012入门图解(二):SQL语句入门

上次介绍了如何在SQL Server中建立数据库和表,并且做备份和还原。这一次将用上次建立的School数据库做演示,学习SQL语句。本文为0基础入门级别,所以介绍的知识非常有限,例子也是最简单的,还是建议大家买本SQL的书学习。 先回顾一下,上次我们建立的数据库和表结构如下: School数据库里只有一张Student表,其中Id是自增长的主键。下面我们以它为例,来演示SQL语句的基本用法。 在SSMS中编写SQL脚本的方法是:点击工具栏上的“新建查询”,在编辑器中输入SQL脚本,选择一个正确的数据库,检查语法正确后,点击“执行”,最后在消息面板可以看到执行结果。如下图: 一、 使用SQL语句创建表 除了前面一片文章介绍的用图形化界面建表,我们还可以用SQL语句来创建表,创建Student表的SQL脚本如下: CREATE TABLE [dbo].[Student]( …
SQL SQL Server

SQL Server 2012入门图解(一):建表、备份、还原

本文很菜,旨在帮助0基础的初学者入门,高手勿看。关于SQL Server 2012的安装可以看我的这篇文章《SQL Server 2012 Express 安装图解》。 一、建立你的第一个数据库和表 例:建立一个用于描述一个学校学生情况的数据库。把它命名为School。并且要在School数据库下建立保存学生信息的表Student。在可视化界面下,我们通常这样操作。(本文是入门教程,不介绍如何用SQL语句建表) 1.    连接到本地数据库引擎后,右击数据库,选择【新建数据库】。 2.    在弹出的对话框中,把数据库名称设置为School,其他参数保留默认。 3.    刷新视图,可以看到School数据库已经建立成功了。 4.    下面我们要在这个数据库中新建一张表。展开School数据库,右击“表”,选择“新建表”。 5.    右边的窗口是表的可视化界面,在这里可以设计一 …
SQL Server Backup

SQL Server 2012 Express 安装图解

前段时间微软发布了最新最犀利的SQL Server 2012,我第一时间下载回来尝鲜。在3台机器上实验安装了一下,都没有出问题。安装过程和以往类似,写这篇文章的目的是帮助刚接触SQL Server的初学者入门。高手请直接飘过。 首先,安装SQL Server需要注意的是它的版本。微软最新发布的是SQL Server 2012,但目前使用比较广泛的是2008版。对于初学者来说,安装哪个都一样。不过SQL Server 2008或2012都分别包含两种版本。超大的那个,4个多G的,是给企业用的。几百M的是给学生和开发者用的免费版,也就是Express版,它可以从微软的网站上直接下载。本文讲解的是SQL Server 2012 Express(似乎只有Windows7以上版本可以安装),读者可以寻找下面两个连接去下载: http://wwwco1vip.microsoft.com/ …
SQL Server

Windows 7 64位版IIS不能连接Access数据库的解决办法

今天我把系统换成了64位版的Windows7,结果配完IIS打开网站测试的时候,顿时菊花一紧:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。 查了半天发现是IIS跑在64位环境下引起的。而64位下,是木有Access数据库的驱动的(包括Excel也不行)。 解决办法是:在目标网站的应用程序池中选择高级设置,然后将启用32位应用程序设置为true,重启IIS即可!
ACCESS IIS

浅谈SQL注入攻击与防范

前置知识:数据库、SQL语句、Web编程(ASP、ASP.NET) 前言:这次要谈到问题,其实不是什么新鲜的内容了,早在许多年前,就在各种黑客杂志和网站上提及过。这次我重新谈起这个问题,一方面是为了完成作业,另一方面我会结合目前的前沿技术来谈谈在SQL注入方面的新进展和防范。希望大家能以技术学习为目的,不要利用SQL注入漏洞进行非法攻击。 一、SQL注入漏洞是如何产生的 我们知道,一个动态网站,往往是要和数据库紧密交互的,即按条件从数据库中取出数据在网页上送显,或按用户的操作去改变数据库中的内容。最普遍的应该是新闻系统。我们经常在地址栏看形如这样的URL:http://某网站/ReadNews.asp?id=32,这个URL的作用是把ID=32传给 ReadNews.asp,ReadNews接受到这个id后,就会到数据库中找到id为32的新闻,取出这条记录并将它显示在网页上。然而,这样真 …
ACCESS ASP.NET SQL