ASP.NET C#事务实例
[
2012/01/07 06:23 | by tommyhu ]
2012/01/07 06:23 | by tommyhu ]
1、创建事务的结构
2、简单例子
3、SQl server中的事务例子
4、注意
1。事务必须在连接打开后BeginTransaction();
2.事务添加到SqlCommand(sqlCommand.Transaction = sqlTransaction; )
3、其他数据库对应做相应调整
4、可以用微软提供的一个dll,很方便.
扩展阅读:事务的理解
设想网上购物的一次交易,其付款过程至少包括以下几步数据库操作:
· 更新客户所购商品的库存信息
· 保存客户付款信息--可能包括与银行系统的交互
· 生成订单并且保存到数据库中
· 更新用户相关信息,例如购物数量等等
正常的情况下,这些操作将顺利进行,最终交易成功,与交易相关的所有数据库信息也成功地更新。但是,如果在这一系列过程中任何一个环节出了差错,例如在更新商品库存信息时发生异常、该顾客银行帐户存款不足等,都将导致交易失败。一旦交易失败,数据库中所有信息都必须保持交易前的状态不变,比如最后一步更新用户信息时失败而导致交易失败,那么必须保证这笔失败的交易不影响数据库的状态--库存信息没有被更新、用户也没有付款,订单也没有生成。否则,数据库的信息将会一片混乱而不可预测。
数据库事务正是用来保证这种情况下交易的平稳性和可预测性的技术。
简单一点的理解就是把一堆操作集合起来,中间有一次操作错误整个集合的操作都会失败,而且会退回到初始的样子。。。。
SqlConnection conn = new SqlConnection();
SqlTransaction ST = conn.BeginTransaction("st");
这样就建立了一个ST事务,现在你可以进行各种操作,然后提交
ST.Commit();
如果操作中出现了错误,可以进行回滚,一切恢复到初始状态
ST.Rollback();
2、简单例子
3、SQl server中的事务例子
4、注意
1。事务必须在连接打开后BeginTransaction();
2.事务添加到SqlCommand(sqlCommand.Transaction = sqlTransaction; )
3、其他数据库对应做相应调整
4、可以用微软提供的一个dll,很方便.
扩展阅读:事务的理解
引用
设想网上购物的一次交易,其付款过程至少包括以下几步数据库操作:
· 更新客户所购商品的库存信息
· 保存客户付款信息--可能包括与银行系统的交互
· 生成订单并且保存到数据库中
· 更新用户相关信息,例如购物数量等等
正常的情况下,这些操作将顺利进行,最终交易成功,与交易相关的所有数据库信息也成功地更新。但是,如果在这一系列过程中任何一个环节出了差错,例如在更新商品库存信息时发生异常、该顾客银行帐户存款不足等,都将导致交易失败。一旦交易失败,数据库中所有信息都必须保持交易前的状态不变,比如最后一步更新用户信息时失败而导致交易失败,那么必须保证这笔失败的交易不影响数据库的状态--库存信息没有被更新、用户也没有付款,订单也没有生成。否则,数据库的信息将会一片混乱而不可预测。
数据库事务正是用来保证这种情况下交易的平稳性和可预测性的技术。
简单一点的理解就是把一堆操作集合起来,中间有一次操作错误整个集合的操作都会失败,而且会退回到初始的样子。。。。
SqlConnection conn = new SqlConnection();
SqlTransaction ST = conn.BeginTransaction("st");
这样就建立了一个ST事务,现在你可以进行各种操作,然后提交
ST.Commit();
如果操作中出现了错误,可以进行回滚,一切恢复到初始状态
ST.Rollback();
利用 Monitor.TryEnter 来规避 .NET 线程死锁
[
2012/01/07 06:10 | by tommyhu ]
2012/01/07 06:10 | by tommyhu ]
利用 Monitor.TryEnter 来规避 .NET 线程死锁
在开发多线程的应用程序时,我们会大量用到 lock (...) {} 块。如果 lock 的对象比较多,非常容易发生死锁。死锁的发生很难预料,而且一旦发生在界面线程上,界面就不再刷新响和应用户输入;如果发生在后台线程,后台线程也就阻塞不工作了,死锁必然会导致应用程序不可用。在.NET里发生死锁的原因是什么?
以 C# 为例,通常 lock 语句是被转化为对一个资源的无限长时间的等待,所以一旦资源被占用而又永不释放,那么必然死锁。
那么如何规避的危害呢?应用程序应该避免 lock(obj) 块,推荐使用 Monitor.TryEnter(obj, millisecondsTimeout) 代替,二者的第一个参数意义相同,而后者还可以设置等待超时时间,一旦在限定的时间内无法获得锁,那么 TryEnter 就会返回 false。这样就不会造成死锁,无法获得资源,业务程序可以采取重试或抛异常的方式进行善后处理。
Monitor.TryEnter 和 Monitor.Exit 必须成对出现,为了简化代码,可以用一个实现IDisposeable的类来封装这个过程:
调用例子:
这样在代码离开 using 块后,会自动执行 Monitor.Exit释放锁。
在开发多线程的应用程序时,我们会大量用到 lock (...) {} 块。如果 lock 的对象比较多,非常容易发生死锁。死锁的发生很难预料,而且一旦发生在界面线程上,界面就不再刷新响和应用户输入;如果发生在后台线程,后台线程也就阻塞不工作了,死锁必然会导致应用程序不可用。在.NET里发生死锁的原因是什么?
以 C# 为例,通常 lock 语句是被转化为对一个资源的无限长时间的等待,所以一旦资源被占用而又永不释放,那么必然死锁。
那么如何规避的危害呢?应用程序应该避免 lock(obj) 块,推荐使用 Monitor.TryEnter(obj, millisecondsTimeout) 代替,二者的第一个参数意义相同,而后者还可以设置等待超时时间,一旦在限定的时间内无法获得锁,那么 TryEnter 就会返回 false。这样就不会造成死锁,无法获得资源,业务程序可以采取重试或抛异常的方式进行善后处理。
Monitor.TryEnter 和 Monitor.Exit 必须成对出现,为了简化代码,可以用一个实现IDisposeable的类来封装这个过程:
调用例子:
这样在代码离开 using 块后,会自动执行 Monitor.Exit释放锁。
2011年各城市年终奖排行,带你盘点年终奖那点事!
[
2011/12/23 11:38 | by tommyhu ]
2011/12/23 11:38 | by tommyhu ]
2011年底了,辛苦一年的朋友们的热门话题就是年终奖了,能发多少,什么时候发,都指望着这年终奖给新年带来快乐的心情,有的大发的公司或企业,像大众一样,发了年终奖也能存上一笔了,在这里tommy整理了一些关于年终奖的关注,一起来分享;2011年各城市年终奖排行,带你盘点年终奖那点事

【全国各城市年终奖排行榜】
北京5008元;上海4874元;深圳4611元;广州4486元;杭州4270元;苏州3965元;南京3937元;东莞3882元;宁波3803元;成都3616元;天津3495元;大连3421元;重庆3381元;昆明3349元;福州3346元;青岛3340元..
有人年终奖发了27个月工资,亲你的年终奖呢
随着2011年最后一月进入“尾声”,各企业年终奖成了年根热词,网上晒奖金的帖子更是密集了许多,而各行业之间难免攀比。可如果年终奖发了27个月的薪水,这算不算有些“耸人听闻”。某公司年底发27个月薪水的消息在论坛和微博上疯传,甚至有人计算出,包括每月发的双薪在内,这个公司的员工全年可能挣到63个月的薪水。听到这个有木有内流满面,亲说好的年终奖呢?
年终奖就是老板给予员工不封顶的奖金,有的还包括了旅游奖励、物质奖励等,是一年来的工作业绩奖励,也是可给可不给的一个项目。年终奖的发放额度和形式一般由企业自己根据情况调整。好的年终奖办法要有较好的考评指标、评价方法、发放规则等等相应的各项制度,可以有效激励员工,增加企业凝聚力。
年终奖与跳槽

得到年终奖后就跳槽,从事多年人事管理工作的刘先生认为,员工跳槽要做好充分的准备,对自己的职业规划和工作环境进行评定,分析一下跳槽的得失。对新的单位也要考察好,“我周围有很多跳槽后反而后悔的,因此要分析好是单位的原因还是自己的原因,不能盲目跳槽。”
年终奖是年前发还是年后发
先来看副有趣的漫画

经查“年终奖是公司鼓励员工的一种方式。不是国家要求强制性执行的,企业根据经营效益情况,可发也可不发。发放时间也可以不确定……”,建议打工者进入企业前应该做相应咨询或以条文形式出现在劳动合同中……
年终奖同样需要交税
【全国各城市年终奖排行榜】
北京5008元;上海4874元;深圳4611元;广州4486元;杭州4270元;苏州3965元;南京3937元;东莞3882元;宁波3803元;成都3616元;天津3495元;大连3421元;重庆3381元;昆明3349元;福州3346元;青岛3340元..
有人年终奖发了27个月工资,亲你的年终奖呢
随着2011年最后一月进入“尾声”,各企业年终奖成了年根热词,网上晒奖金的帖子更是密集了许多,而各行业之间难免攀比。可如果年终奖发了27个月的薪水,这算不算有些“耸人听闻”。某公司年底发27个月薪水的消息在论坛和微博上疯传,甚至有人计算出,包括每月发的双薪在内,这个公司的员工全年可能挣到63个月的薪水。听到这个有木有内流满面,亲说好的年终奖呢?
年终奖就是老板给予员工不封顶的奖金,有的还包括了旅游奖励、物质奖励等,是一年来的工作业绩奖励,也是可给可不给的一个项目。年终奖的发放额度和形式一般由企业自己根据情况调整。好的年终奖办法要有较好的考评指标、评价方法、发放规则等等相应的各项制度,可以有效激励员工,增加企业凝聚力。
年终奖与跳槽
得到年终奖后就跳槽,从事多年人事管理工作的刘先生认为,员工跳槽要做好充分的准备,对自己的职业规划和工作环境进行评定,分析一下跳槽的得失。对新的单位也要考察好,“我周围有很多跳槽后反而后悔的,因此要分析好是单位的原因还是自己的原因,不能盲目跳槽。”
年终奖是年前发还是年后发
先来看副有趣的漫画
经查“年终奖是公司鼓励员工的一种方式。不是国家要求强制性执行的,企业根据经营效益情况,可发也可不发。发放时间也可以不确定……”,建议打工者进入企业前应该做相应咨询或以条文形式出现在劳动合同中……
引用
年关将近,双薪、年终奖、花红,是很多人盼望过年的理由之一。能拿到年终奖当然皆大欢喜,可有些员工却因为发放年终奖时已经离职或跳槽而不能拿到年终奖,有些公司为了留住员工而推迟发放年终奖。有媒体更刊发《“迟发年终奖防人才跳槽”既违法又失德》的评论,指出这种做法既不符合《劳动法》,也踏入了道德失范的泥沼。
那么这些公司的做法是否合理?员工该如何维护自己的正当权益呢?记者请教了有关法律专家。法律专家指出,虽然无法找到关于“年终奖推迟发放不合法”的直接法律规定,但只要公司违背承诺、违反单位规章制度等文件,推迟发放年终奖肯定不合法。此外,“不在册”或者离职的员工只要在这一年度中为单位付出了劳动,用人单位就应根据其工作时间折算发放年终奖。
原文:http://life.dayoo.com/edu/201002/01/75163_11920594.htm
那么这些公司的做法是否合理?员工该如何维护自己的正当权益呢?记者请教了有关法律专家。法律专家指出,虽然无法找到关于“年终奖推迟发放不合法”的直接法律规定,但只要公司违背承诺、违反单位规章制度等文件,推迟发放年终奖肯定不合法。此外,“不在册”或者离职的员工只要在这一年度中为单位付出了劳动,用人单位就应根据其工作时间折算发放年终奖。
原文:http://life.dayoo.com/edu/201002/01/75163_11920594.htm
年终奖同样需要交税
net项目开发人员综合测试工具ANTS Performance Profiler 6.3
[
2011/12/10 11:03 | by tommyhu ]
2011/12/10 11:03 | by tommyhu ]
net项目开发人员综合测试工具ANTS Performance Profiler 6.3
ANTS Performance Profiler 6.3
.NET code profiler: Speed up the performance of your .NET applications

"RED GATE"总是能给人惊喜,之前有用过sql的提示工具,用起来非常爽,相信用过的人都很有印象,也是基于mssql开发人员的最基本工具,好比拼接中的firebug和iedevelopment toolbar一样,而今天向大家介绍的这款工具确认是让我非常之喜爱,她就是ANTS Performance Profiler 6.3!
好吧,那么ANTS Performance Profiler 6.3能做什么呢,ANTS Performance Profiler 6.3是一款分析基于net开发程序效率的工具,能监视程序执行的效率,诸如时间,cpu占用,并且能找到程序中不完美即耗时和在那用cpu很多的方法,让你程序优化得心应手,实在是居家旅行必备良品,强烈推荐使用!
值得注意的是ANTS Performance Profiler 6.3的早起版本,网上有很多,但只支持net framework2,这个新的版本能支持微软最新的开发框架net framework4……
下载地址:http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/download-c

red gate公司还有很多其他产品,可以一起看看,都是很酷
《反编译工具》(Red Gate Reflector)v7.0.1.1[压缩包]http://www.verycd.com/topics/2893474/
相关更多介绍可以参看微软msdn相关介绍:http://visualstudiogallery.msdn.microsoft.com/512023C6-AFFB-497C-B8EA-97D99E69ADEB
也可以查看更多很酷的开发工具http://visualstudiogallery.msdn.microsoft.com/site/search?f%5B0%5D.Type=RootCategory&f%5B0%5D.Value=tools

使用者评价都是非常的高,赶紧行动吧亲……
ANTS Performance Profiler 6.3
.NET code profiler: Speed up the performance of your .NET applications
"RED GATE"总是能给人惊喜,之前有用过sql的提示工具,用起来非常爽,相信用过的人都很有印象,也是基于mssql开发人员的最基本工具,好比拼接中的firebug和iedevelopment toolbar一样,而今天向大家介绍的这款工具确认是让我非常之喜爱,她就是ANTS Performance Profiler 6.3!
好吧,那么ANTS Performance Profiler 6.3能做什么呢,ANTS Performance Profiler 6.3是一款分析基于net开发程序效率的工具,能监视程序执行的效率,诸如时间,cpu占用,并且能找到程序中不完美即耗时和在那用cpu很多的方法,让你程序优化得心应手,实在是居家旅行必备良品,强烈推荐使用!
值得注意的是ANTS Performance Profiler 6.3的早起版本,网上有很多,但只支持net framework2,这个新的版本能支持微软最新的开发框架net framework4……
下载地址:http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/download-c
red gate公司还有很多其他产品,可以一起看看,都是很酷
《反编译工具》(Red Gate Reflector)v7.0.1.1[压缩包]http://www.verycd.com/topics/2893474/
相关更多介绍可以参看微软msdn相关介绍:http://visualstudiogallery.msdn.microsoft.com/512023C6-AFFB-497C-B8EA-97D99E69ADEB
也可以查看更多很酷的开发工具http://visualstudiogallery.msdn.microsoft.com/site/search?f%5B0%5D.Type=RootCategory&f%5B0%5D.Value=tools
使用者评价都是非常的高,赶紧行动吧亲……
ASP.NET MVC3.0 Demo音乐商店 - 目录
[
2011/11/25 08:00 | by tommyhu ]
2011/11/25 08:00 | by tommyhu ]
引用
Project Description
MVC Music Store is a tutorial application built on ASP.NET MVC. It's a lightweight sample store which sells albums online, demonstrating ASP.NET MVC's productivity features and data access via Entity Framework 4. See what you can do with MVC in under 1000 lines of c# code!
Overview
Demonstrates ASP.NET MVC 3 Templating, Data Annotations, and Validation
Demonstrates Razor syntax and advanced features
Shows Client-Side Validation, jQuery, and use of AJAX helper methods
Includes store browse, shopping cart, checkout, and membership
Shows data access via Entity Framework 4
Illustrates use of ViewModels
This tutorial requires Visual Web Developer 2010 Express and ASP.NET 4.0 (both free) or Visual Studio 2010
这一个系列的内容来自微软的音乐商店 Music Store, 这是项目在 Codeplex 上的地址:http://mvcmusicstore.codeplex.com/。
这个项目使用 ASP.NET MVC3 完成,项目中除了提供完整的示例代码之外,还提供一个 100 多页的说明文档,这里的内容就翻译自这篇文档。
在我学习这个项目的过程中,发现有一些地方与文档并不完全一致,项目中也引入了一些新的软件,在第一次使用的时候会比较陌生,因此,将整个项目使用中文 VS2010 重新完成一遍,将原文的界面全部替换为使用中文 VS2010 操作的界面,这样对大家可能会有一些帮助。
ASP.NET MVC 音乐商店 - 0 概览
ASP.NET MVC 音乐商店 - 1 创建项目
ASP.NET MVC 音乐商店 - 2.控制器
ASP.NET MVC 音乐商店 - 3. 视图与模型
ASP.NET MVC 音乐商店 - 4. 数据访问
ASP.NET MVC 音乐商店 - 5. 通过支架创建编辑表单
ASP.NET MVC 音乐商店 - 5 通过支架创建编辑表单 续
ASP.NET MVC 音乐商店 - 6. 使用 DataAnnotations 进行模型验证
ASP.NET MVC 音乐商店 - 7.成员管理和授权
ASP.NET MVC 音乐商店 - 8. 使用 Ajax 更新的购物车
ASP.NET MVC 音乐商店 - 9. 注册和结账
ASP.NET MVC 音乐商店 - 10. 完成导航和站点的设计
除了上述的资料之外,还需要你已经安装了 VS2010 ,这里系列我们将使用中文版,这样更加方便一些,另外,你当然要安装 ASP.NET MVC3 的插件了,
首先是 ASP.NET MVC 3 RTM ,下载地址:http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=d2928bc1-f48c-4e95-a064-2a455a22c8f6&displaylang=zh-cn
然后,为了更加高效地开发 MVC3 ,还需要安装一个更新:ASP.NET MVC 3 RTM Tools Update ,下载地址:http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=82CBD599-D29A-43E3-B78B-0F863D22811A
asp.net+jQuery.Jcrop实现在线裁剪图片
[
2011/11/21 07:50 | by tommyhu ]
2011/11/21 07:50 | by tommyhu ]
asp.net+jQuery.Jcrop实现在线裁剪图片
Demo地址:
下载文件 (已下载 41 次)

the jQuery Image Cropping Plugin插件项目地址:
http://deepliquid.com/content/Jcrop.html
1、在页面上加载原图
这个就不用多说了,就是在页面上显示一张图片,一个img标签搞定,不过为了下一步演示,还是贴一下代码
2、用矩形框在原图上选取区域
这个我们要用到一个jQuery插件Jcrop,感谢Jcrop,其项目页面地址:http://deepliquid.com/content/Jcrop.html,再次感谢。接下来就是运用这个插件来让我们能在原图上随意地切图。先在页面上放几个隐藏域,用来存放当前选取的顶点坐标及选取矩形的尺寸,再放一个保存按钮,点击保存按钮后将在服务器上保存切割后的图片。代码如下:
四个隐藏域分别表示x:左上顶点x坐标;y:左上顶点y坐标;w:选取矩形宽度;h:选取矩形长度。
然后我们调用插件,做好初始化工作,引入js和css文件:
Demo地址:
下载文件 (已下载 41 次)the jQuery Image Cropping Plugin插件项目地址:
http://deepliquid.com/content/Jcrop.html
1、在页面上加载原图
这个就不用多说了,就是在页面上显示一张图片,一个img标签搞定,不过为了下一步演示,还是贴一下代码
2、用矩形框在原图上选取区域
这个我们要用到一个jQuery插件Jcrop,感谢Jcrop,其项目页面地址:http://deepliquid.com/content/Jcrop.html,再次感谢。接下来就是运用这个插件来让我们能在原图上随意地切图。先在页面上放几个隐藏域,用来存放当前选取的顶点坐标及选取矩形的尺寸,再放一个保存按钮,点击保存按钮后将在服务器上保存切割后的图片。代码如下:
四个隐藏域分别表示x:左上顶点x坐标;y:左上顶点y坐标;w:选取矩形宽度;h:选取矩形长度。
然后我们调用插件,做好初始化工作,引入js和css文件:
教你如何成为一名不合格的程序员
[
2011/11/17 22:49 | by tommyhu ]
2011/11/17 22:49 | by tommyhu ]
本文教你如何成为一名不合格的程序员,已经成为或即将成为或具有该潜质的童鞋可以看看,复习一下,也请不吝赐教。其他的认为一辈子都无法达到这种境界的童鞋,可以以此文作为茶余饭后的笑料。
1. 永远要两次跳进同一个坑里。
2. 让你的Leader重复他/她说过的话。
3. 每件事情只做好一半,但要跟Leader说:差不多了。
4. 永远不要对自己做过的事负责。
5. 要写出连自己都看不懂的代码,这样才显得自己与众不同。
6. 编码规范神马的都是浮云,哥的代码才是标准:变量名用abc,方法名大小写等都是即兴表演。
7. 不管什么问题绝对不要跟Leader说,以免他/她知道你的不足。
1. 永远要两次跳进同一个坑里。
2. 让你的Leader重复他/她说过的话。
3. 每件事情只做好一半,但要跟Leader说:差不多了。
4. 永远不要对自己做过的事负责。
5. 要写出连自己都看不懂的代码,这样才显得自己与众不同。
6. 编码规范神马的都是浮云,哥的代码才是标准:变量名用abc,方法名大小写等都是即兴表演。
7. 不管什么问题绝对不要跟Leader说,以免他/她知道你的不足。
华尔街D9数字论坛“马云”专访!
[
2011/07/16 18:09 | by tommyhu ]
2011/07/16 18:09 | by tommyhu ]





tommyhu:
