码迷,mamicode.com
首页 > Windows程序 > 详细

一些有点用处的开发经验,祭奠我的C#开发历程

时间:2015-03-31 10:36:42      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

博主下个月就要去进行Java开发了,以后C#碰的就少了,平时一些经验都记在OneNote里面,现在收集整理出来:

 

C#篇:

1、目标平台的选择

64位操作系统在编译VS里的程序时,根据需要设置项目属性的“目标平台”为x86。如果设置为AnyCPU,则在VS 2005里面是不能“编辑并继续”的。

技术分享

——在选择x86和AnyCPU都可以在32位操作系统上使用。

——选择x86在64位服务器上运行,可能会造成类库无法加载的问题。此问题在后文IIS经验中解释。

 

2、取DataTable或者DataGridView里面值的两种常用方法:

dt.Rows[i].Cells["ID"].Value.ToString();
dt.Rows[0]["Name"].ToString();

前者需要从Value中取值,使用起来不是太方便。后者且不能加Value

——所有的中括号中都可以使用序号(从0开始)或是字段名(列名、行名)

 

3、如果没有使用Linq(一直都用的2.0框架……),可以使用此法来写执行SQL。如:

string strSQL = string.Format("Insert table_1 values(‘{0}‘, ‘{1}‘,{2},{3})"

如果是varchar类型,必须使用‘‘;如果是int,目前发现既可使用‘‘也可以不使用,往往写脚本,嫌麻烦,就都带上了‘‘,貌似执行上不会有问题,但不知道性能会不会有所下降。如果有知道的朋友请在评论区说下咯。

 

4、DLL引用了,但是在代码里面还是无法调用。

尝试在DLL的属性里面设置使用特定版本为False

SQL篇

1、有关SQL中Join的问题。

left join的那个表(子表),on的字段存在两条,那么查询出来的结果会分为两条。

例子:

(1)两个表的内容是

技术分享

(2)left join的结果

技术分享

 

2、同一张表可以Left Join两次

技术分享

 

3、Union的时候,如果两个字段类型不同,必须进行转换,否则会出错。

技术分享

如上图convert。注意使用union all可以显著提高速度,这样的话,不会对查询结果进行排序。

 

 

思想以及设计理念:

1、逻辑删除与物理删除的概念?

物理删除时真正的删除了,逻辑删除还保留数据在数据库中的位置,但是修改其删除标志为已删除状态(貌似这个在大学里面就学了……)

 

2、在UI层,如果出错了,或者操作失败了,应该提醒用户下一步应该做什么。

如:当用户进行操作B的时候,需要先开启选项A。设当前选项A为关闭状态,用户进行操作B,此时应提示:“操作失败,选项A未启用,请到XXX设置中开启选项A”。在某些应用中,甚至可以增加直接跳转到设置的地方,或者直接修改设置。根据需要而定。

一些有点用处的开发经验,祭奠我的C#开发历程

标签:

原文地址:http://www.cnblogs.com/Ebony-Ivory/p/4380106.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!