
C#
老程序猿一枚
干了10多年,一直在转型,一直未成功。失败挫折,家常便饭,不得已继续着程序猿的生涯。本来是个[业余程序猿],现在干着干着变成[老程序猿]了。
展开
-
Access数据库操作踩坑记:数据溢出,设置1字段为Null是因为类型转换失败
Access数据库,数据溢出,设置1字段为Null是因为类型转换失败!原创 2022-07-28 13:13:10 · 3052 阅读 · 1 评论 -
WPF combox不能获取到Text属性值
公司今天同事把原来的项目,修改了UI后,生成一个新的界面的程序。结果登陆界面不能正常登录了。非常奇怪。登陆界面如下deubg一下发现是由于下面的代码,cmb.Text 居然为空,我靠,我可是输入了test1的呀。这也太无语了吧。 stringuserName=string.Empty;if(SelectedAccount==null){ComboBoxcmb=MyView.FindName("Log...原创 2021-07-02 11:31:17 · 1064 阅读 · 2 评论 -
C#中问号(?)的那些事 (?: ?? ?.)
C#语言里,关于问号的骚操作老是忘记,收集一下,方便以后参考。尽管自己作为一个老派的码农很少用,但也得看得懂别人写的代码不是么。1. 可空类型修饰符(?):即:System.Nullable 。引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。例如:string str=null; 是正确的,int i=null; 编译器就会报错。为了使值类型也可为空,就可以使用可空类型,即用可空类型修饰符"?"来表示,表现形式为"T?"例如:int? 表示可空的整形,Date...原创 2020-06-18 14:27:01 · 691 阅读 · 0 评论 -
奇怪的Task:Task启动Action后 再次创建会失效 !
自从有了task以后很少再启动线程Thread了。贴下代码:比如以前要写成这样:publicvoidStartMonitor(){t=newThread(ParseReceiveData);//创建了线程还未开启t.IsBackground=true;t.Start();isStarted=true;}privatevoidParseReceiveData(){intlen=...原创 2020-06-11 15:56:58 · 919 阅读 · 1 评论 -
wpf 输入字符长度限制
wpf里很多控件比如像textbox,就存在Maxlength这样的属性,直接设置6,就可以限制客户输入6个字符了,但是很多控件就没有这样的现成的属性。尤其是写第三方的控件,C1Felxgrid,Xceed.Wpf.DataGrid.DataGridControl这些控件的cell内,也需要限制长度的时候就傻眼了。不可能这么多控件都去一一研究他们怎么控制。搞半天,也很...原创 2017-02-23 14:15:56 · 7309 阅读 · 0 评论 -
wpf 实现 类似网页里的 输入提示
WFF实现 类似网页里的输入提示,该提示在输入文字后即刻消失。 先上效果图。上代码:在xaml文件里:1声明style原创 2017-01-18 16:52:56 · 992 阅读 · 0 评论 -
法语系统小数点的处理。Convert.ToDouble(string str)的问题
.net提供了个函数处理 把string装换成 double例如:double d = Convert.ToDouble("2.5")d:2.5但是法语系统中 ,字符串2.5会写成2,5 注意是逗号,不是小数点了。当然一般情况下会正常输出double d = Convert.ToDouble("2,5")d: 2,5 但也有不能正确输出的情况,时原创 2016-11-03 15:14:43 · 4815 阅读 · 2 评论 -
Xaml 中height和width中的Auto与*的区别
Auto 表示自动适应显示内容的宽度, 如自动适应文本的宽度,文本有多长,控件就显示多长.星号 * 则表示按比例来分配宽度. Width="3*" /> Width="7*" />同样,行可以这样定义 Height="3*" /> Height="7*" />这些数字可以是小数.如果数字缺省,则默认是1.在这个例子中, 列2的宽转载 2016-09-26 14:32:30 · 10272 阅读 · 2 评论 -
wpf 如何将参数通过CommandParameter 传入viewmodel
今天需要实现这么一个功能,在datagrid里,每行增加编辑按钮,弹出对话框修改签注。xmal代码如下: Command="{Binding Path=DataContext.MeaningEditCommand, RelativeSource={RelativeSource FindAncestor,原创 2016-06-15 14:32:36 · 22667 阅读 · 0 评论 -
VS2013打开2015的项目报错 The specified task executable location ... csc.exe" is invalid.
最近在做mvc WebApi的相关调研,从github上打包下载了个开源代码学习一下。代码打开,编译报错如下:1.D:\WebApi\SlickSafe-master\Source\DLL\Newtonsoft.Json.dll Error 2 Assembly 'System.Net.Http.Formatting, Version=5.2.3.0, Culture=neut原创 2017-05-10 13:51:55 · 1261 阅读 · 0 评论 -
C# DateTime类型的变量默认值
DateTime类型是比较常用的变量类型,但是以前处理都比较业余,下面总结2中常用方式这次把它总结下:DateTime t1 = default(DateTime);DateTime t2 = DateTime.MinValue;这样t1,t2 的值都是 {0001/1/1 0:00:00}另外总结下controller和过滤器中如何传值过滤器中 p原创 2017-10-11 16:58:34 · 30341 阅读 · 0 评论 -
.net core 整合日志log4net
.net core 框架里本身嵌入了日志系统。实例化 Microsoft.Extensions.Logging.LoggerFactory 开始利用 ILoggerFactory 的扩展方法指定您想使用的提供程序。代码如下:public static void Main(string[] args = null){ ILoggerFactory loggerFactory =...原创 2017-11-17 11:23:54 · 8533 阅读 · 2 评论 -
发布asp.net core 应用 在IIS
近期由于工作原因,需要发布.net core框架下的webapi到IIS上。遭遇了一番蹂躏,特此记下,以备后面使用。首先工作中有2个服务。一个是identityserver4的服务,负责token的发放,一个是我们的业务webApi。当客户需要调用我们的webapi时,要先到identityserver4上去申请一个token。然后使用这个token来访问我们的webapi。原创 2017-06-28 14:23:25 · 5281 阅读 · 0 评论 -
webApi安全访问之 IdentityServer4使用总结
webapi项目通常需要考虑跨域,安全性等问题。今天总结一种最简单的方式,来保障webapi不被别人随便调用。这里总结下identityserver4的使用。IdentityServer4 是最新也是比较容易上手的一个开源框架,你要是从IdentityServer3开始用,会很容易头大,搞不清楚所以然。就github上面的使用例子看,IdentityServer4是比较容易理解上手的。这次原创 2017-11-22 14:57:52 · 9702 阅读 · 0 评论 -
Visual studio 出现 <Module> 的类型初始值设定项引发异常
最近电脑老旧了,突然Visual studio也不能用了。症状是,只有VS2010能用,之前Vs2013,Vs2017不能正常打开。于是修复,卸载,重装。都试了个遍。结果vs2013,vs2017都不能再正常安装了。vs2015也装不了。就剩vs2010这个独苗了。好在马上也告别这电脑了。就将就用下vs2010吧。结果一打开,连vs2010也不能用了了。报如下错误。把VS2010\VS2012出现...原创 2018-07-11 11:30:20 · 5822 阅读 · 2 评论 -
VS快速复制项目所引用的包
新建一个项目工程,搭建各种引用包。搭好想重复利用怎么办?1将项目的package.config拷贝到新项目里2打开nuget命令控制台3是用命令还原包,重新下载。举例:输入命令:Update-Package -ProjectName 'HT.IRS.NewJob' -Reinstall这个一模一样的项目框架就搭建好了。开始随意码代码吧!...原创 2019-04-23 14:12:32 · 2128 阅读 · 0 评论 -
C# 合并dll到 exe当中
要求使用command -line的方式做接口。号称还是BS架构的web程序,可以直接调用这个控制台程序。我一想,这要是能实现很牛。相当于又增加一种程序间做交互,接口方式。比起以前的 socket链接,表连接,文件链接,同一电脑下的命名管道。又多了一种选择。转载 2015-10-30 14:49:09 · 10314 阅读 · 4 评论 -
C#几个经常犯错误汇总
这几个错误,大部分我都中枪。特地转载下让自己常常反省下:在我们平常编程中,时间久了有时候会形成一种习惯性的思维方式,形成固有的编程风格,但是有些地方是需要斟酌的,即使是一个很小的错误也可能会导致昂贵的代价,要学会善于总结,从错误中汲取教训,尽量不再犯同样错误,注重编程之美,代码的优雅,总结几个平常经常犯的错误。1、在C#编程中,字符型类型是最容易处理出错的地方,代价是非常昂贵,转载 2015-02-27 10:25:30 · 581 阅读 · 0 评论 -
WPF 是什么 ,桌面应用新趋势
要赢得世界,必须在恰当的时间做出恰当的事。这一点,微软做到了。历经微软 DOS,Win 31, Windows 95, Windows 98, Windows 2000, Windows XP, 一路走来,一次比一次热闹,一个比一个精彩、炫丽。Windows Vista的宣传更是轰轰烈烈,喧嚣日上。初见Windows Vista,都会被它的酷炫界面所吸引,哇!原来Windows也可与Mac一样酷、转载 2012-10-26 13:45:11 · 2436 阅读 · 0 评论 -
用VS2005打开VS2008建的解决方案
一、为什么使用VS2008VS2008(Microsoft Visual Studio 2008)是一个较新版本,新版往往都比旧版本完善,而且会提供更多的特性与实用功能,但不一定是最稳定的版本。不稳定但不会影响喜欢尝新一族,相信很多人都是为了看看VS2008的新脸孔而装了VS2008。当然相信也有很多人会去使用VS2008的一些新特性,比如在.NET2.0刚出来的时候,很多人觉得新提供转载 2013-01-03 12:22:15 · 375 阅读 · 0 评论 -
C# 串口通讯日记
VC和C#对串口通讯方面,做惯了VC的感觉C#的很不方便。因为大部分需要在同一个线程内交互很频繁的操作,C#大部分都是2个线程在做这个事,一个发送,一个接受。我认为是不方便的。把找到的资料保存下。1.命名空间System.IO.Ports命名空间包含了控制串口重要的SerialPort类,该类提供了同步 I/O 和事件驱动的 I/O、对管脚和中断状态的访问以及对串行驱动程序属性的访原创 2013-01-14 17:56:51 · 780 阅读 · 0 评论 -
C#调用VB的dll 纸币找零设备操作
最近在做纸币找零设备操作的项目,需要调用一个VB开发的dll。努力一番,有些心得记之。居然是高丽棒子开发的。唉,什么时候能够国产啊。!?sensor(7) As Byte 相当于Vc byte sensor[7]相当于C# [MarshalAs(UnmanagedType.ByValArray, SizeConst = 7)]byte[] sensor;原创 2013-01-15 16:47:30 · 936 阅读 · 0 评论 -
引发类型为“System.ExecutionEngineException”的异常
昨天调试函数时出现这个问题引发类型为“System.ExecutionEngineException”的异常!函数原型为: public struct CDMLASTDISPENSE { public byte last_cmd; // Command last sent public by原创 2013-01-22 15:54:56 · 27318 阅读 · 2 评论 -
数据库连接失败 之四
今天要搭个新环境,结果安装包打上之后,数据库怎么也连不上。连其他电脑的数据库也,是连接失败。则,可以排除是数据库安装的问题。 用其他电脑可以正常访问该电脑上的数据库。糟了,难道是软件的问题。这个我也基本排除,因为该软件在很多地方都在用。这个可是死的在不允许安装开发环境的地方,很头疼这个原因。原来也没有日志。天杀的。随后运行了C#软件,终于爆出错来了。提示:安装mdac 2原创 2013-06-17 15:57:43 · 962 阅读 · 0 评论 -
设计范式解析:从面向对象的设计模式看软件设计(zz)
前些天发了一篇《如此理解面向对象编程》的文章,然后引起了大家的热议。然后我在微博上说了一句——“那23个经典的设计模式和OO半毛钱关系没有,只不过人家用OO来实现罢了……OO的设计模式思想和Unix的设计思想基本没什么差别”,结果引来了一点点争议。所以,我写下这篇文章把我的观点说明一下。我希望这样可以让大家更容易地理解什么是设计模式。我顺便帮OO和 Unix/Linux搞搞基。什么是模转载 2013-07-23 15:42:27 · 972 阅读 · 0 评论 -
c#调用c++写成的dll文件,返回char*,返回数组,用ref接收,byte[] (zz)
c#调用c++写成的dll文件,返回char*,返回数组,用ref接收,byte[] ,最近做个项目,又想不起来了。这下Mark一下/ Inclusion guard#ifndef _DLLTUT_DLL_H_#define _DLLTUT_DLL_H_// Make our life easier, if DLL_EXPORT is defined in a file转载 2013-12-21 12:00:26 · 10696 阅读 · 0 评论 -
C# winfrom软件的稳定性
最近在提升去年开发自助缴费机的稳定性。在原有xp系统上,升级平台到win7上。发现稳定性直转直下。呵呵。看样子要换以前开发的欠债了。没有充足的开发时间,和测试时间。不能将敌人(bug)消灭在发布之前,真是不幸啊。更不幸的是,稳定性问题。有点误解的意思。阴魂不散。之前内存上涨的问题,控制的还行。内存一直维持在合理区间。通过很长时间的测试,不断地重现出软件死掉的情况。但是还是没有收原创 2014-03-01 11:07:57 · 2655 阅读 · 0 评论 -
UserControl中的tagprefix和tagname
在Asp.net的aspx中当注册一个User Control 时,会在 下面是 Sample: 首先在asp.net 项目中新建一个RandomImage.ascx User Control,然后将这个控件拖到一个新建的page 页面中。在page 页面里可以看到如下代码:转载 2014-09-25 16:13:35 · 1286 阅读 · 0 评论 -
linq 语法lambpa语法总结
1、查询语法与方法语法:① 查询语法(query syntax)是声明形式的,看上去和SQL语句很相似。查询语法使用查询表达式形式书写。② 方法语法(method syntax)是命令形式的,它使用的是标准的方法调用。方法是一组叫做标准查询运算符的方法。③ 在一个查询中也可以组合两种形式。例子: 1 protected void btnSel_Click转载 2014-10-10 12:10:04 · 769 阅读 · 0 评论 -
SqlServer 2008 Management高级应用:Sql Prompt和SSMS Tools
最近在做电子商务,和sqlserver数据库大较多原创 2014-10-29 09:14:24 · 2967 阅读 · 0 评论 -
chrome的常用扩展
最近在做web开发,所以使用默认的IE做转载 2014-10-11 09:14:16 · 1518 阅读 · 0 评论 -
web开发生涯开启, 常用笔记一
作为业余chengxyuan原创 2014-09-19 13:13:22 · 855 阅读 · 0 评论 -
WEB开发 缓存
什么是Web缓存,为什么要使用它?Web缓存游走于服务器和客户端之间。这个服务器可能是源服务器(资源所驻留的服务器Add),数量可能是1个或多个;这个客户端也可能是1个或多个。Web缓存就在服务器-客户端之间搞监控,监控请求,并且把请求输出的内容(例如html页面、 图片和文件)(统称为副本)另存一份;然后,如果下一个请求是相同的URL,则直接请求保存的副本,而不是再次麻烦源服务器。我们首转载 2014-12-31 10:02:25 · 659 阅读 · 0 评论 -
网站突然不能登录引发血案,吐血总结!
最近客户的系统突然登录不了了!报错:用户密码错误! 但是用户密码分明是正确的,从此开始了历时3日的辛酸历程。为了解决这个问题天天眼睛查得都红了。就是解决不了。最后原来程序设置的有效时期到了。郁闷了。但是公司测试的电脑是可以登陆的,我们起初怀疑就是系统配置遭到破坏。一直往这个方向上努力。第二日,我们在自己的电脑上新搭系统,发现也不行。这下胸闷了!到底是什么原因的。唉。今天看来真是好笑啊。原创 2012-10-12 15:39:44 · 668 阅读 · 0 评论