摘要:Recently I watched an interesting video in youtube, the vbloger use calculating Fibonacci number to explain dynamic programming after watch this video 阅读全文
Some tips on using HashSet<T> and List<T>
2016-07-26 09:50 by imyang, 185 阅读, 0 推荐, 收藏, 编辑
摘要:This article is written based on my colleague's review Most of the times, when I want to use a collection to store data, I usually Use List<T> type, b 阅读全文
使用NPOI导出DataTable到Excel
2013-10-08 15:54 by imyang, 1106 阅读, 1 推荐, 收藏, 编辑
摘要:使用C#对DataTable导出到Excel是我们工作当中比较多用到的场景,微软提供了Microsoft.Office.Interop.Excel组件可以进行操作,但是该组件在数据量大的时候速度很慢,可以参考stackoverflow上的提问(Microsoft.Office.Interop.Excel really slow),所以我又找了一些其它的开源组件,比如著名的OpenXML,但是它不支持.NET 2.0了。终于在stackoverflow上看到有人说NPOI,试了一下,速度果然很快,而且从.NET2.0到4.0都支持,附一下导出的代码吧using System;using Sy.. 阅读全文
使用Linq实现SQL的全连接
2012-11-19 23:00 by imyang, 3025 阅读, 2 推荐, 收藏, 编辑
摘要:在stackoverflow上看到关于这个问题的讨论,打算记录下来。关于全连接(Full Outer Join),Linq并不支持,所以就需要使用其它方法来实现,就像不支持全连接的数据库一样,先使用内连接找出公共的部分,然后分别找出左连接和右连接的部分,把这三部分的结果UNION一下,即可得到全连接的效果。看问题:ID FirstName-- --------- 1 John 2 SueID LastName-- -------- 1 Doe 3 Smith显示下面的结果:ID FirstName LastName-- --------- -------- 1 Joh... 阅读全文
使用SQL Server远程连接Oracle
2012-10-19 20:45 by imyang, 2038 阅读, 0 推荐, 收藏, 编辑
摘要:工作当中有同时用到SQL Server和Oracle的情况,在无法使用web service的情况下,如果需要在SQL Server中直接访问Oracle数据库,那么SQL Server有提供相应的功能,即链接服务器。下面说一下如何创建链接服务器和远程操作Oracle数据库。以下操作假定已经在本机配置好对远端Oracle数据库的访问。在SQL数据库的服务器对象下有链接服务器,如下图所示:右键单击,选择“新建链接服务器”,弹出窗口:“常规”选项卡链接服务器:可以自定义输入服务器类型:选择其他数据源访问接口:选择"Microsoft OLE DB Provider for Oracle& 阅读全文
表扫描和索引扫描
2012-09-21 21:00 by imyang, 988 阅读, 0 推荐, 收藏, 编辑
摘要:在Stackoverflow上有一个关于表扫描和索引扫描的关注度很高的问题http://stackoverflow.com/questions/18764/whats-the-difference-between-a-table-scan-and-a-clustered-index-scan提问:既然表扫描和聚集索引扫描本质上都是扫描获取表中的所有记录,为什么聚集索引扫描会更好呢?回答:没有聚集索引的表(堆表),数据页并没有放在一起聚集索引的表,数据页是以双向链表的形式链接在一起。在做顺序扫描时会快一些。但是在更新、插入和删除时,就需要对数据页多做处理了总结:例子中的扫描所有记录,聚集索引表比 阅读全文
使用SQL进行递归查询
2012-09-15 22:16 by imyang, 1386 阅读, 1 推荐, 收藏, 编辑
摘要:在工作当中会经常用到递归,比如菜单的展示。一种方法就是从数据库中取出所有的数据,然后在程序中循环获取符合条件的数据。另外一种方法就是使用SQL直接读取符合条件的数据。对于递归查询,T-SQL和PL/SQL进行了不同的处理。以表Deparment为例表结构为:Id 部门内码,DeptCode 部门编码,ParentDeptId 上级部门内码使用T-SQL:with Dep as ( select Id,DeptCode,DeptName from Department where Id=1 union all select d.Id,d.DeptCode,d.DeptNa... 阅读全文
【翻译】WCF Service Application和WCF Service Library的区别
2012-09-12 21:45 by imyang, 3008 阅读, 0 推荐, 收藏, 编辑
摘要:最近我在工作中一直用到WCF。一个困惑点就是应该选择哪种类型的工程:WCF Service Application 还是 WCF Service Library。让我们分别看一下,然后检查不同点。希望我们可以总结出一些在不同场景使用的结论。The WCF Service Application 模板你在Visual Studio的”添加新项目”对话框中创建WCF Service Application结果是这样子的:它的结构和web应用程序很相似,这绝不是巧合。WCF服务的特殊性在于,你拥有服务契约(IService1.cs)、服务实现 (Service1.svc.cs)和web配置文件(we 阅读全文
使用Action表驱动代替switch…case语句
2011-11-22 22:12 by imyang, 1166 阅读, 1 推荐, 收藏, 编辑
摘要:大家都知道,代码中出现过多的if…else嵌套语句时很难读,所以常用switch…case语句进行代替,代码的可读性就好了很多。举个简单的例子:public void DoSomeThing(string str) { if (str == "A") { DoSomethingForA(str); } else if (str == "B") { DoSomethingForB(str); } else if (str == "C") { DoSomethingForC(str); } }我们一眼就看出,这段代码可以使用switch语 阅读全文
算法-冒泡排序
2011-10-31 21:04 by imyang, 232 阅读, 0 推荐, 收藏, 编辑
摘要:冒泡排序的原理:简单的说,就是对数组里面的数字进行两两比较,较大的数不断地被交换上去,就像冒泡一样。每进行一轮排序,就是把最大的数找出来。下面是实现算法一:public void BubbleSort(int[] numbers) { int temp; for (int i = 0; i < numbers.Length - 1; i++) { for (int j = 0; j < numbers.Length - 1; j++) { if (numbers[j] > numbers[j + 1]) { temp = numbers[j]; ... 阅读全文