上一页 1 ··· 5 6 7 8 9 10 11 下一页
摘要: 上一章中你通过继承已经减少了Instructor和Student类中的冗余代码,本章节中你将使用一些封装好的单元工作类去完成增删改查的任务。像上一章一样,你将改变代码与已经创建的页面间的工作方式,并非需要额外创建新页面。【封装单元代码工作】“封装单元代码工作”方式将在一个应用程序的“数据访问层”和“业务逻辑层”之间创建一个抽象层,通过实现此设计方式可以把你的程序从数据存储变化中隔离开来,同时便于“自动单元化测试”或者是“驱动测试开发(TDD)”。本章节中你要为每一个类型实现一个存储封装类:对于Student类型而言你将创建存储封装接口,以及实现的对应类;当你在控制器中实例化这个存储接口时,你将 阅读全文
posted @ 2012-04-27 17:11 Serviceboy 阅读(855) 评论(0) 推荐(0) 编辑
摘要: 前一章你已经完成了存储类以及单元工作类的设计,本章中将包含下列内容:1)处理原生态的SQL语句请求。2)处理“无跟踪”的请求。3)测试发送到数据库的请求。4)与代理类配合协同工作。5)禁用自动变化检测机制。6)禁用数据保存前验证机制。以上大部分内容你将配合以创建的页面进行处理。为了使用原生态的SQL语句更新对应相关记录,您需要创建一个新页面用以批量更新数据库中全部课程学分所对应的那个编号。为使用“无跟踪”请求,你需要额外对Department的Edit(编辑)页面追加一个新的验证逻辑:【处理“原生态”SQL命令】EntityFramework(代码优先)API方法允许你把SQL命令直接送入数据 阅读全文
posted @ 2012-04-27 17:10 Serviceboy 阅读(1407) 评论(1) 推荐(0) 编辑
摘要: 原文:http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application【序】Contoso大学示例程序为您演示了如何使用EntityFramework技术来创建一个完整的ASP.NET MVC程序,这个示例是一个虚拟大学的网站,它包含了诸如“学生注册”、“课程创建”以及“指定授课讲师”等虚拟功能。这个教程系列解释了如何一步步地去创建一个完整的Contoso大学示例程序,你可以点击此处下载 阅读全文
posted @ 2012-04-27 17:09 Serviceboy 阅读(2345) 评论(3) 推荐(3) 编辑
摘要: 把一个DataTable或者某个object集合的数据源绑定到DataGridView中,直接通过DataGridView数据录入需要进行额外的数据验证。数据验证总共分成两个大类:I)类型验证:所谓“类型验证”,就是输入的数据是不是可以(有效)转化成特定的类型(比如字段是int,但是输入确实abc等),这明显不符合要求。默认情况下,直接在绑定的DataGridView输入不符合类型的数据,当切换到下一条信息或者调用EndEdit方法将抛出异常。这很难看,我们可以通过处理DataError来实现强制性输入正确类型,代码非常简单:[C#]namespace WinFormCSharp{ pu... 阅读全文
posted @ 2012-04-10 16:36 Serviceboy 阅读(4120) 评论(0) 推荐(1) 编辑
摘要: 我们知道如果对DataGridView直接设置数据源进行绑定,并且启用“排序”的话,直接点击列名就可以实现绑定。现在的问题在于如果这个DataGridView没有设定数据源(数据是动态添加的),如何对这样的数据进行排序呢?[C#]public partial class Form1 : Form { DataGridView dv = new DataGridView(); public Form1() { InitializeComponent(); } private void Form1_L... 阅读全文
posted @ 2012-04-10 09:55 Serviceboy 阅读(1866) 评论(0) 推荐(0) 编辑
摘要: 最近在MSDN上看到一个人提问如何把自定义的Label拖拽到WinForm上的时候,AutoSize自动设置成False。他当时给出的方法是:[C#]class MyLabel : Label{ public MyLabel() { AutoSize = false; }}[VB.NET]Class MyLabel Inherits Label Public Sub New() AutoSize = False End SubEnd Class很简单,思路似乎也正确——因为MyLabel一旦被初始化之后,构造函数应该立即被执行,从... 阅读全文
posted @ 2012-03-16 20:11 Serviceboy 阅读(2263) 评论(1) 推荐(1) 编辑
摘要: 传统ADO.NET的情况下使用ObjectDataSource使得我们可以使用任何数据源作为底层进行CRUD的操作,简单易行。不过ObjectDataSource用的不好往往调试起来很困难(当然这是微软控件封装了太好的缘故:-))。在常见的此类数据源控件出错中,最最常见切频繁出现的就是“XXXDataSource未能找到带参数的……”一类红色的提示。如何解决此类问题呢?俗话说得好——工欲善其事,必先利其器——我们就从提示入手,仔细研究揣摩ObjectDataSource究竟是如何映射ObjectDataSource的Update方法参数的。方便期间,我们先创建一个工程(我目前用VS2011 B 阅读全文
posted @ 2012-03-16 15:30 Serviceboy 阅读(1025) 评论(1) 推荐(0) 编辑
摘要: 上接"检测是否页面刷新还是第一次加载"的文章,谈到了自定义一个继承于Page的类(姑且称为MyPage吧)并且重写了OnInit方法,以后让其它的Page类全部继承自该类,突然想到一个问题——既然OnInit被重写了,那么以后继承于MyPage类的其它页面如果有特殊需要,还是要重写OnInit还可以吗?要知道OnInit被重写之后已经不带virtual(VB.NET中虚方法是Overridable),那就是一个普通方法,还可以被重写吗?现在看来,这种担心是多余的——因为虽然这个方法不带virtual关键字,但是仍然是虚方法——看来可以这样总结:凡是overrides(VB. 阅读全文
posted @ 2012-03-14 12:55 Serviceboy 阅读(986) 评论(2) 推荐(0) 编辑
摘要: 检查页面是否通过点击submit按钮而回发的方法是使用IsPostBack,那么有时候我们需要检查一个页面是否被重复刷新过,以便防止重复提交数据。当然,判断方法很多,我这里简单说一下一个比较简单而且容易理解的办法——就是使用Session进行检查(因为Session放在服务端,而且第一次加载访问页面的时候可以进行一个记录,以后就直接判断该页面中的Session是否为null,如果不为null则说明已经刷新过了)。这里我封装了一个控件UserControl,其中代码如下[C#]namespace WebCSharp{ public partial class RefreshCheck : ... 阅读全文
posted @ 2012-03-13 11:12 Serviceboy 阅读(1671) 评论(6) 推荐(1) 编辑
摘要: 有一句英语名言——Picutures speak louder than words(图片胜于千言万语)。可见在描述一些细节问题,或者是用语言文字难以让人产生“身临其境”的时候,图片就发挥了其作用。在WinForm中,DataGridView不仅仅是用于显示文字、我们还可以显示图片。本章就和大伙儿讨论DataGridView中嵌入显示图片的问题。一、嵌入式显示:所谓“嵌入式”,就是说把图片单独存放在某个DataTable的字段中(该字段为byte[]类型)然后绑定到对应DataGridView的指定单元格中显示出来,代码大致如下:[C#]public partial class Form1 : 阅读全文
posted @ 2012-03-06 11:14 Serviceboy 阅读(5095) 评论(0) 推荐(1) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 下一页