雁过请留痕...
代码改变世界

随笔分类 -  C#

.NET实现事务的编码方式

2018-03-19 10:32 by xiashengwang, 340 阅读, 收藏, 编辑
摘要: 1,在T-SQL语句中用begin tran,end tran的方式 begin tran --select top(1) * from dbo.test with(updlock) update test with(updlock) set name ='name_upd' where id = 阅读全文

[转]MS SQL Server 数据库连接字符串详解

2018-03-16 11:22 by xiashengwang, 878 阅读, 收藏, 编辑
摘要: http://blog.csdn.net/jackiehome/article/details/8668121 问题 : 超时时间已到。在从池中获取连接之前超时时间已过。出现这种情况可能是因为所有池连接都已被使用并已达到最大池大小。 解决办法 1. 在代码里面 , 把未关闭的连接关闭 2. 扩大共享 阅读全文

[转].Net连接池超时注意事项

2018-03-16 11:21 by xiashengwang, 1058 阅读, 收藏, 编辑
摘要: http://blog.csdn.net/jxqvip/article/details/6738551 超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。 解决办法1.在代码里面,把未关闭的连接关闭2.扩大共享池,方法如下:解决方法可 阅读全文

Jquery调用ajax参数说明

2017-12-22 11:22 by xiashengwang, 429 阅读, 收藏, 编辑
摘要: 代码中有详细注释,直接上代码。 注释掉的选项,一般用不到,直接用最基本的部分就可以了。 阅读全文

HttpWebRequest、HttpWebResponse获取网页

2017-05-22 14:46 by xiashengwang, 320 阅读, 收藏, 编辑
摘要: 1,通过HttpWebRequest、HttpWebResponse获取一个流 2,读取流成字符串 方法1:利用Stream的Read方法 方法1中的response.ContentLength可能为-1(和服务器的压缩有关),造成数组初始化失败。 网上方法:添加 request.Headers.S 阅读全文

String Format for Double [C#]

2017-05-22 10:25 by xiashengwang, 1444 阅读, 收藏, 编辑
摘要: 转载:http://www.csharp-examples.net/string-format-double/ he following examples show how to format float numbers to string in C#. You can use static met 阅读全文

sqlserver查看和解除表死锁

2017-01-23 13:29 by xiashengwang, 13576 阅读, 收藏, 编辑
摘要: 1,查看那个表死锁 2,结束死锁的进程 阅读全文

调用cmd.exe执行pdf的合并(pdftk.exe)

2016-07-12 16:31 by xiashengwang, 2198 阅读, 收藏, 编辑
摘要: 今天调查一个pdf文件的抽取,合并功能,用到下面这个工具(pdftk): https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ 在cmd.exe里执行的很好,但在.net环境下,用程序调用就出问题,调用代码如下: 不管怎么调试,代码就卡在p.Sta 阅读全文

以Lockbits的方式访问bitmap

2015-01-15 11:38 by xiashengwang, 6298 阅读, 收藏, 编辑
摘要: 用Bitmap.GetPixel和Bitmap.SetPixel访问像素点实在是太慢了,必须要用LockBits的方式访问内存才能改善,这里贴一个快速访问Bitmap每个像素点的包装类,是国外一个老外写的,感觉很好用。 public class LockBitmap { Bitmap source = null; IntPtr Iptr = IntPt... 阅读全文

【转】Graphics 关于呈现质量与合成模式

2015-01-14 15:34 by xiashengwang, 858 阅读, 收藏, 编辑
摘要: GDI+相关的作图,每种语言都有其自身的封装类,但本质上是一样的,下面这篇文章写的非常好,对于C#的Graphics类也是使用的,所以转载了,原文在这里: http://www.cnblogs.com/del/archive/2009/12/22/1630120.html 相关内容有: IGPGraphics.SmoothingMode; { 绘图质量 } IGPGraph... 阅读全文

【转】使用lockbits方法处理图像

2015-01-07 14:11 by xiashengwang, 873 阅读, 收藏, 编辑
摘要: 许多图像处理任务即时是最简单的文件类型转换,例如从32位深度到8位深度的格式转化,直接获得像素阵列要比使用GetPixel和SetPixel等方法的效率高得多。 你可能会发现DotNet采用托管机制,大多数情况下微软会推荐你使用托管代码,理由是便捷和安全。实际应用中,直接操作内存中的数据块是很少见的,尽管如此,图像处理恰恰是这类为数不多的情况之一,因为使用托管代码的效率低的难以忍受,特别是对巨幅图... 阅读全文

DataTable 行删除

2014-12-24 15:08 by xiashengwang, 4206 阅读, 收藏, 编辑
摘要: 今天在阅读一个项目中的代码时,发现删除DataTable的数据时用的dataTable.Clear(); 由于以前自己习惯都是用dataTable.Rows.Clear();因此突然感觉到很茫然,难道这两者有啥不一样?于是一阵百度,Bing搜索,在加上Reflector的帮助,结论如下:1,data... 阅读全文

Windows API 常用函数

2014-10-15 14:21 by xiashengwang, 3007 阅读, 收藏, 编辑
摘要: .Net中虽然类库很强的,但还是有些时候功能有限,掌握常用的api函数,会给我们解决问题提供另一种思路,下面给出自己常用到的Api函数,以备查询。 知道api函数,但却不知道c#或VB.net该如何声明,可以查询这个网站:http://pinvoke.net/ 1,SetForegroundWindow 将窗口显示到最前面,前提是窗口没有最小化。 [DllImport("User32.dl... 阅读全文

winform上控件的拖拽小结

2014-10-14 15:25 by xiashengwang, 11534 阅读, 收藏, 编辑
摘要: 这里罗列出几个相关的事件和属性,具体的实现介绍已有非常优秀的文章了,文章末尾我将会给出,大家可以去参考。 属性: AllowDrop: 目标控件必须设定为true,才能接受拖拽来的东西。 事件: ItemDrag: 源控件在拖动开始时发生。在这里需调用DoDragDrop方法开始拖拽行为。 DragEnter:目标控件接受到拖拽行为时发生。在这里可以通过e.Effect设定目标控件能接受的拖拽行为... 阅读全文

【进阶修炼】——改善C#程序质量(10)

2014-10-09 16:36 by xiashengwang, 424 阅读, 收藏, 编辑
摘要: 158,不要写冗余注释。 注释应该写代码没有表达的东西。 代码能够自我描述就不要加注释。 159,废弃的注释应该尽早删除。 废弃的注释由于年代太久远,已经和现在的代码逻辑不匹配了,这样的注释只会误导人,应该删除。 160,注释掉的代码。 这是一个灾难,没有人知道它还有没有用,一直被遗留下来,然后代码不断的腐朽下去,勇敢的删除它吧,版本管理工具会记得它。 160,死函数。 死函数,即没有被调用... 阅读全文

【进阶修炼】——改善C#程序质量(9)

2014-10-09 16:35 by xiashengwang, 341 阅读, 收藏, 编辑
摘要: 140,使用默认的访问修饰符。 如果不加访问修饰符,成员变量的默认是private的,类默认是internal的。为了明确访问的权限,我倒是建议都加上访问修饰符,这省不了多少代码。 141,不知道该不该加大括号的时候就加上。 大括号会多占用两行代码,到底一行语句的代码需不需要加大括号这是一个争论。但是为了避免引入不必要的bug还是加上吧。 142,总是提供有意义的命名。 我们不希望看到如iTe... 阅读全文

【进阶修炼】——改善C#程序质量(8)

2014-10-09 16:34 by xiashengwang, 307 阅读, 收藏, 编辑
摘要: 122,以.作为命名空间。 如Microsoft.Windows.Design。也可以用域名作为空间,如www.microsoft.com,就可以写成com.microsoft. ,这种命名方法在java中比较常见。但.net中似乎不是很推荐,最好用第一种。好的命名空间可以避免不同程序集间类名的冲突。 123,程序集不必与命名空间同名。 程序集名称表示的是物理分组,而命名空间是逻辑分组,两者没有... 阅读全文

【进阶修炼】——改善C#程序质量(7)

2014-10-09 16:33 by xiashengwang, 286 阅读, 收藏, 编辑
摘要: 113,声明变量时考虑最大值。 Ushort的最大值是65535,用于不同的用途这个变量可能发生溢出,所以设计时应充分了解每个变量的最大值。 114,MD5不再安全。 MD5多用于信息完整性的校验。R=H(S),MD5的算法是不可逆的,也就是我们几乎没有可能根据生产的MD5码去还原原文。但是我们可以使用穷举的办法生成MD5码来对比,由于我们平常设定的密码都比较简单,如:123456,根本不用很长... 阅读全文

【进阶修炼】——改善C#程序质量(6)

2014-10-09 16:32 by xiashengwang, 323 阅读, 收藏, 编辑
摘要: 90,不应为抽象类指定public的构造函数。 抽象类即使指定了public的构造函数,也是不能实例化的,编译通不过。抽象类的构造函数应该设定为protected,它的作用应该是初始化自己的成员,以及可以被子类构造函数调用。设定为public权限毫无意义。 91,可见字段应该重构为属性。 属性比字段有更好的灵活性,可以加入代码控制,可以在类型内部实现线程安全访问,可以让类型得到通知(如WPF系统... 阅读全文

【进阶修炼】——改善C#程序质量(5)

2014-10-09 16:31 by xiashengwang, 360 阅读, 收藏, 编辑
摘要: 71, 区分异步和多线程的应用场景。 计算机的很多硬件,如硬盘,光驱,声卡,网卡都有DMA(Direct Memory Access)功能,它可以不占用cpu的资源,而异步的提出恰恰就是基于这个的。而多线程是操作系统上的并行执行的代码,是会占用cpu资源的。所以关于这两种的使用场景建议是:1)对于I/0密集型操作使用异步。2)对于计算密集型操作使用多线程。 72, 在线程同步中使用信号量。 值类... 阅读全文