.net C#
xuexiaodong2009
主要从事C#编程,精通SQL,JS,jquery等技术,目前主要从事内部办公,微信企业号方面的应用
展开
-
FTP判断目录是否存在
FTP判断目录是否存在的方法没有直接方法,只能使用间接的方法。使用WebRequestMethods.Ftp.ListDirectory来判断,但这个方法存在一定的问题,就是如果这个目录存在,但此目录下既没有目录,也没有文件,则这个方法就有问题。 private static bool DirectoryExist(FtpInfo info, string dirName, bool KeepAlive) { //修复iis设置为framework4.0原创 2021-09-09 14:25:03 · 4627 阅读 · 0 评论 -
打印预览通过滚动鼠标移动预览
打印预览时,希望滚动鼠标的滚轮,来实现类似拖动滚动条的功能。核心代码: PrintPreviewDialog PrnPreView = new PrintPreviewDialog(); PrnPreView.PrintPreviewControl.Zoom = 1; Type type = typeof(System.Windows.Forms.PrintPreviewControl);原创 2020-05-29 08:48:05 · 696 阅读 · 0 评论 -
打印预览TopMost问题
想要是打印预览始终居于最上边,发现有个问题,只要弹出了打印预览,结果连点击QQ都没有反映了,因为打印预览挡住了QQ的弹出框。于是修改如下,在打印预览有焦点时,TopMost=true,失去焦点时TopMost=false. PrintPreviewDialog PrnPreView = new PrintPreviewDialog(); PrnPreView.PrintPreviewControl.Zoom = 1; PrnPreVie原创 2020-05-29 08:43:14 · 448 阅读 · 0 评论 -
打印预览CA图片 一片空白
在处理打印,对方给我的是图片的Base64的字符串,但我发现,预览时有单模糊,于是按照打印图片模糊问题,进行了处理,发现问题更大,预览时,直接什么都没有了,并且后边的任何打印也都不显示了。但实际的打印是正常的。看来GIF图片确实有特殊的地方测试代码 private void PrintDocument1_PrintPage(object sender, System.Drawing.Pr...原创 2020-04-20 15:40:14 · 805 阅读 · 0 评论 -
打印图片模糊问题2
经过之前的处理打印图片模糊问题,但感觉还是有点模糊,在调试,发现还是有点模糊,于是在测试,发现Graphics对象就有缩放图片的方法。可以直接调用 public override void OnPaintForPrint(Graphics g, RectangleF ClipRectangle) { if (ClipRectangle.Intersec...原创 2020-04-20 13:09:21 · 755 阅读 · 1 评论 -
打印图片模糊问题
最近一直在处理打印的相关问题,有人提出来,打印出来的图片很模糊。然后自己就分析了一下,为什么打印出来的图片会很模糊。由于涉及到图片的缩放,图片的缩放代码如下,把先关的参数都设置为高质量 public static Bitmap ChangeImgSize(Image bit, int Width, int Height) { Bit...原创 2020-04-20 10:57:04 · 2743 阅读 · 0 评论 -
打印预览和实际的打印不一致问题
1打印预览和实际的打印的打印机不一致,打印预览使用的是系统自带的各种虚拟的打印机,但实际打印时却是实际的打印机。需要判断PrinterName是否一致System.Drawing.Printing.PrintDocument对象的 string PrinterName= printDocument.PrinterSettings.PrinterName;2打印预览和...原创 2019-12-17 14:05:25 · 15447 阅读 · 1 评论 -
System.BadImageFormatException: 试图加载格式不正确的程序
在asp.net程序中使用P/Invoke加载了一个在程序集,在调试时没有问题,但发布后就有问题了。已访问就提示如下的信息,System.BadImageFormatException: 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)在网上说是要修改生成属性,修改后发现还是提示,原来要把所有相关的项目的生成都需要改成一样的。另外还需要修改IIS的配置IIS》应用程序原创 2017-02-10 09:30:57 · 18513 阅读 · 5 评论 -
EF 配置Oracle数据库
EF可以配置Oracle数据库,但不知道为什么一直配置不好。其实可以使用使用NUGET管理程序包,自动配置数据库,但需要注意的时,需要安装两个包,而并不是一个,我一直以为时一个,但已启动程序就会出错。安装后配置文件的主要的改变如下:原创 2017-03-04 09:38:04 · 1862 阅读 · 0 评论 -
EF 配置Oracle数据库 EntityType“PersonInfoTest”未定义键。请为该 EntityType 定义键
使用之前的方法配置好Oracle数据库后,使用code first 一运行,就提示:模型生成过程中检测到一个或多个验证错误:Model.PersonInfoTest: : EntityType“PersonInfoTest”未定义键。请为该 EntityType 定义键。Model.UserTest: : EntityType“UserTest”未定义键。请为该 EntityType 定义键。Pe原创 2017-03-11 09:34:59 · 4476 阅读 · 0 评论 -
winfrom记录全局错误
在main函数中注册几个事件,记录下错误,便于排查错误。SetUnhandledExceptionModeThreadExceptionUnhandledException static class Program { private static Mutex singleton; /// /// 应用程序的主入口点。原创 2017-08-04 09:03:33 · 557 阅读 · 0 评论 -
winform只运行一个程序
核心是通过命名信号量Mutex来判断。在main函数启动时判断是否存在命名的信号量。没有则创建,有说明已经启动了。在程序关闭时,关闭命名信号量。判断是否存在命名的信号量 private static bool Check() { bool has = false; singleton = new Mutex(false, Assem原创 2017-08-04 09:09:39 · 563 阅读 · 0 评论 -
NHibernate中Oracle字段类型Clob数据长度过大问题
问题特别奇怪,按理说Clob字段不存在长度过大的问题,但在实际使用中却会提示这个问题。而且字符特别少时,没有问题,特别长时也没有问题,长度在在1千到五千之前就会有问题。实际上因为把Clob字段作为varchar所以会出现长度问题。修改如下:添加类继承NHibernate中的IUserType public abstract class PatchForOracleLobField : IUserT原创 2017-11-30 15:00:28 · 1319 阅读 · 0 评论 -
TFS自动下载Build原理及代码实现
背景: 由于TFS服务器在国外的客户处,导致每次生成新的build,复制到本地局域网需要近一个小时的时间,由于使用的是远程桌面mstsc登录的方式,经常发生同一个账户多个人登录,导致复制了一半,连接中断,又不得不重新复制。所以需要写一个自动下载build到本地局域网的程序。而且我们又不能修改TFS的生成设置,也不能修登录TFS所在的机器,还需要对代码进行一些验证例如stylecop,Fxc原创 2012-02-28 14:47:38 · 3460 阅读 · 0 评论 -
自动发布web应用程序或者网站
由于需要自动化构建集成测试,所以需要一整套环境。 关键 1根据源代码的改动自动下载代码,2编译3发布网站 1第一步只需要通过CruiseControl.NET就可以做到 2编译其实就是在ccnet.config中添加一个任务,关键代码 C:\Windows\Microsoft.NET\Framewor原创 2012-04-18 15:46:33 · 10165 阅读 · 0 评论 -
正则表达式应用:匹配IP地址
都知道iP地址有四个数值,三个点号组成。三个数值的具体范围为0到255,为了使用正则表达式匹配就必须分析IP地址的组成 1先分析数值,2再组合数值和点号 1先分析数值 IP地址的数字范围从0到255,再细分就是0到99,100到199,200到249,250到255 匹配 0到99的正则表达式是:\d{1,2},含义就是匹配1位或者是两位数字也可以写成[原创 2013-09-06 10:38:53 · 8366 阅读 · 1 评论 -
使用NPOI完全脱离excel的导出二,批量数据导出性能优化。
使用完全脱离excel的导出中的方法导出excel,使用了一段时间后,发现问题不少,尤其是数据量特别大的时候,例如上万的数据,经常需要好几分钟。于是自己就开始进行优化。 经过观察代码,发现能优化的地方。1使用反射的地方 2类型判断的地方3是设置单元的值 1使用反射的地方 PropertyInfo pinfo = typeof(TModel).GetProperty(co...原创 2016-03-11 10:24:06 · 7172 阅读 · 2 评论 -
asp.net web定时器实现及注意事项
在web程序上实现定时器,有一定难度,浏览器端其实只需要使用js的定时器就可以实现,但服务端如何实现呢?都是使用Global.asax加Timer 实现的,但很多文章却没有提到这种设计的问题。 基本代码很简单:Global.asax文件内容: System.Timers.Timer timer = null; void Application_Start(object sender, Ev原创 2015-09-18 09:57:23 · 3510 阅读 · 0 评论 -
百度地图,高德地图,HTML5经纬度比较
对于一个地点的经纬度,是确定的?这个问题,我像很多人都会回答,肯定了,可实际上呢?我只能呵呵了。在使用百度地图的过程中,发现一个很奇怪的现象,有时候调用百度地图js API时,后得到一个错的离谱的地方。然后我自己也就研究了一下jsAPI获取地理位置的相关信息,jsAPI其实都是利用了HTML5中的方法获取地理信息的。但很奇怪,使用HTML5获取到的经纬度和百度获取的竟然相差很大。HTML5获取到的原创 2015-10-19 10:32:42 · 5186 阅读 · 0 评论 -
微信企业号开发:微信考勤百度地图定位,错误修正
在使用百度地图进行微信考勤时,遇到很多问题,尤其是定位问题,我知道定位有偏差,但使用百度地图,几十次后,偶尔一次会错的离谱,例如直接就定位到了外省,例如我一直在西安,一次定位到了天津,一次定位到了石家庄,我不知道为什么会这样。偏差几千米还能理解,可偏差几百公里就是在让人不能理解了。是因为我用的百度API是免费的吗?当然出现的次数不多,一般情况下,四五十次,会偶尔出现一两次这么离谱的偏差。实在找不到原创 2015-10-19 11:05:24 · 7411 阅读 · 1 评论 -
微信企业号开发:微信用户信息和web网页的session的关系
微信企业号的用户是需要验证的,因此能关注企业号的用户其实就是已经通过验证的用户,但企业应用中打开一个网页,在这个网页中如何根据微信用户的信息创建web应用中最长使用的session呢?微信用户如何和web的session关联起来呢? 例如:一个应用,根据不同的人员,显示不同的内容,各个网页之间需要session来传递一些信息,在微信企业号中如何处理呢?这个问题需要涉及的接口是OAuth2验证接原创 2015-08-18 10:51:05 · 8844 阅读 · 0 评论 -
微信企业号开发:接收消息和事件
接收到的消息和事件,其实都是微信post到我们配置的URL的消息。接收普通消息就是用户给公众号发送的消息,事件是由于用户的特定操作,微信post给我们的消息。被动响应消息是我们收到微信post过来的普通消息或者是事件时,企业号通过Response.Write这种方式回复的消息。核心代码:把微信post过来的数据先解密,转为能处理的XML,再把XML转为对象 #region 将POST过来的数据转化原创 2015-08-04 13:50:58 · 10764 阅读 · 0 评论 -
反射设置和获取值
using System;using System.Reflection;using System.Reflection.Emit;/// /// 属性值动态获取和赋值(get、set)/// public class PropertyUtil{ /// /// 反射获取对象的属性值 /// /// /// /// p原创 2017-12-13 13:37:29 · 630 阅读 · 0 评论 -
asp.net网站记录全局错误
asp.net网站记录全局错误核心是在Global.asax中注册错误的事件和网站关闭的原因,这样可以便于排查错误。在发生错误时记录下错误的相关信息核心代码 void Application_Error(object sender, EventArgs e) { // 在出现未处理的错误时运行的代码 Exception ex = Server.GetLast原创 2017-08-04 09:15:05 · 741 阅读 · 0 评论 -
Flags类型的枚举的使用和用法
Flags类型的枚举可以简化很多代码,例如如下需求,矩形的四条边,按照设定,可以只存在四条边中的任意条边。使用普通的思路,就必须定义四条边所有的组合,添加一条边和减少一条边的代码都比较复杂,但如果使用,Flags类型的枚举就很简单。定义枚举 [Flags] public enum CellBorderType { none =...原创 2019-09-29 20:24:25 · 1976 阅读 · 0 评论 -
winform打印预览注意事项
1硬边距预览时能获取到硬边距,但硬边距不起作用,但在实际打印时,硬边距内打印的任何文字线条是不打印的。获取硬边距的方法: private void PrintPage(object sender, PrintPageEventArgs ev) { Graphics g = ev.Graphics; bool Ha...原创 2019-09-23 16:04:59 · 983 阅读 · 0 评论 -
打印预览的线条粗细问题
在编写打印时,遇到一个很奇怪的问题,明明代码的线条宽度是一样的,但预览时,明显可以看到不一样。如果说是误差,但如果把宽度放大,误差也应该放大才对,但很奇怪,放大后,反倒一致了。开始以为是,其他的是其他的东西遮挡导致线条变细,后来直接把所有线条的坐标打印出来,重新只做了一个测试程序,发现使用winform渲染线条是没有差别的,但如果是打印预览,并且是百分之150的时候,很明显有差别。代码:...原创 2019-08-08 16:34:53 · 2757 阅读 · 0 评论 -
cs端根据字体计算文字所占位置的方法2
之前写过一篇cs端根据字体计算文字所占位置的方法,后来发下,有部分结论是不正确的。关于三种测量方法测量出来的大小是不对的。第一种方法使用TextRenderer String text1 = "护理病历样板测试一护理病历 样 板 测 试 一护 理 病 历 样 板 测 试 一"; Font arialBold = new Font("宋体", 20.0F, G...原创 2019-05-09 16:23:25 · 404 阅读 · 0 评论 -
使用NPOI完全脱离excel的导出三,批量数据导出性能优化
之前写过一篇使用使用NPOI完全脱离excel的导出二,批量数据导出性能优化,但在实际使用中发现,导出五万条数据,需要近三十秒,这还不包括读取数据的时间。于是看看还能不能优化。 通过测试发现速度慢主要体现在一下两个方面:1是把IWorkbook写入内存流,看着似乎没办法修改。 internal static MemoryStream Export(IWorkbook workbook...原创 2018-11-23 15:08:06 · 3492 阅读 · 4 评论 -
C# 如何检测网络连接
1WebRequestpublic static bool WebRequestTest() { string url = "http://www.google.com"; try { System.Net.WebRequest myRequest = System.Net...转载 2018-08-21 15:07:25 · 5439 阅读 · 0 评论 -
CS端编写拖动虚线框
显示效果如下:有两种方法,一种是使用传统的Graphics,另一种是使用在屏幕上划线的方式。 public static void DrawReversibleLine(Point start, Point end) { System.Windows.Forms.ControlPaint.DrawReversibleLine(start, en...原创 2018-08-14 11:49:27 · 538 阅读 · 0 评论 -
cs端根据字体计算文字所占位置的方法
方法1,这种方式测量的宽度和TextFormatFlags有一定关系 private static SizeF MeasureText(string text, System.Drawing.Font font) { Size proposedSize = new Size(0, 0); Size OneWordSize = ...原创 2018-08-14 09:14:55 · 427 阅读 · 0 评论 -
读取PDF文件的中文文字
1添加引用iTextSharp2引入命名空间using iTextSharp.text.pdf;using iTextSharp.text.pdf.parser;3读取文件 private string ReadPFD(string path) { // string path = path;// @"D:\ydfile\d4bab8ff-26ff-4ddf...原创 2018-04-27 09:48:41 · 2753 阅读 · 0 评论 -
使用程序自动登录网站
之前写过一篇使用代码自动登录网站,下载数据的博客程序自动登录和下载数据,后来在测试发现发现使用之前博客中的方法会导致网站系统异常,自然也就不能登录和下载数据了。但因为不是自己的网站不知道导致异常的原因,于是只能测试,后来发现是两个地方。1提交的数据中有特殊符号.2HttpWebRequest的Headers需要处理 1提交的数据中有特殊符号.。例如+,=等 都知道post方式提交数据时,会对一原创 2017-12-22 09:42:20 · 6463 阅读 · 0 评论 -
No 'Access-Control-Allow-Origin' header is present on the requested resource
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://test.123.com:808' is therefore not allowed access.出现这种问题是时因为浏览器出现了跨域的请求。在http://test.123.com:808网站中请求了其他域中的原创 2017-11-28 11:32:49 · 834 阅读 · 0 评论 -
通讯协议常用函数
整型数据和byte数据相互转化 /// /// 把数字转化为数组 地位存低字节,高位存高字节 /// /// /// /// public static byte[] IntToBytes(int x, int length) {原创 2017-11-11 13:01:26 · 652 阅读 · 0 评论 -
程序自动登录和下载数据
1请求登录页面2根据登录页面获取需要提交的数据3提交登录数据,并返回CookieContainer4根据登录后的CookieContainer,设置CookieContainer,获取数据1请求登录页面,获取需要提交的数据,登录数据数据,并返回CookieContainer private CookieContainer GetLogInCookie(string Url, string use原创 2017-07-10 13:35:30 · 1407 阅读 · 0 评论 -
asp.net网站不同子域名共享session信息
1session信息可序列化 [Serializable] [Serializable] public class UserSession { public string GroupCode { get; set; } public string Ro原创 2017-08-01 14:53:47 · 1751 阅读 · 0 评论 -
web网站获取客户端服务端信息
/// /// 记录下服务端对外的域名,在没有请求但需要时使用 /// private static string ServerName = null; /// /// 域名 /// 例如访问 http://yd.jiankangle.com/base/Test123.aspx ///返回 yd.jiankangle.com /原创 2017-12-15 14:28:35 · 2844 阅读 · 0 评论 -
.net中json字符串和对象之间的转化方法
json作为作为一种最常用的数据,应用很广泛,在.net中如何把一个对象转化为json字符串呢?主要有一下几种1按照json的定义自己转化,难度很大,但很灵活。需要自己处理各种特殊字符,各种数据类型2使用开源的类库Newtonsoft.Json3使用JavaScriptSerializer类 4使用System.Runtime.Serialization.dll提供的DataContractJso原创 2015-07-22 09:52:44 · 24354 阅读 · 0 评论