C#.NET
血战31天
《31天学会CRM项目开发(C#编程入门及项目实战)》作者,IT经理,程序员
展开
-
疫情风险地区排查工具
疫情风险地区排查工具,排查成百上千的地址,只需三步:导入地址,开始排查,导出地址。功能特点:(1)、多地址多行程处理,工具可自动将一个单元格内的地址按照逗号、顿号、换行符自动拆分多地址。(2)、标准地址转换,工具会使用高德地址数据库对不规范的地址进行标准地址转换,提高风险地区识别效率。(3)、自动排查,工具会将地址国家最新疫情风险地区数据库进行比对,自动排查区县一级的高中低风险数量。......原创 2022-08-16 08:15:36 · 438 阅读 · 1 评论 -
CodedUI自动化测试及脱离VS独立运行
Visual Studio自带的测试功能很强大。本文章将演示一个”编码的UI测试“的例子。我们还可在一个WinForm项目中执行事前录制好的测试脚本,并脱离VS独立运行。原创 2015-06-12 21:18:12 · 3860 阅读 · 0 评论 -
使用agsXMPP SDK向Openfire发送文件的注意事项
使用agsXMPP向Openfire发送文件,一直被service-unavailable错误困扰,详细错误如片段1-1所示。使用agsXMPP自带的Demo MiniClient项目,可以正常发送文件,但在自己的项目中却发送失败。后比对MiniClient项目代码终于找出问题。原创 2015-07-28 11:27:42 · 2204 阅读 · 0 评论 -
DataGridView增加新行(合计行)
在DataGridView中增加合计行,可使用下面的代码:DataGridViewRow row = (DataGridViewRow)dgv.Rows[0].Clone();var index = dgv.Rows.Add();dgv.Rows[index].Cells["ID_"].Value = 0;dgv.Rows[index].Cells[colName].Value = am原创 2015-07-23 08:49:15 · 5073 阅读 · 0 评论 -
写博十年,终于混到出书了
和CSDN一起成长快十年了,在这里泡论坛,写博客,下载技术资源。我的成长离不开这里,离不开热心的网友。当初发起开源项目MiniOA,吸引了很多网友,之后就有了写书的念头,虽然整理了很多文档资料,不过,从各种途径了解到JSF和Richfaces在国内知名度太小,所以最终放弃了。原创 2016-03-21 08:59:12 · 1126 阅读 · 0 评论 -
书已出,只要能帮助或影响1000人,也算是功德圆满
最近刚出了一本关于软件编程入门的书,书名是《31天学会CRM项目开发(C#编程入门及项目实战)》,机械工业出版社的,没花钱。写书很耗精力,为了专心写书也把工作给辞了。本以为书出了后能轻松些,但实际上更忙了,这种专业书籍不比小说,适用人群少。书出了后,出版社给做了个微信软文,经过朋友群卖力吆喝后,阅读量才上了600,相比其他软文几十的阅读量,出版社都说我这成绩很不错了。这个号称有十万粉丝的公用号实际影响力寥寥。原创 2016-04-06 08:48:52 · 614 阅读 · 4 评论 -
作者签名赠书,免费学习软件编程
本活动起止时间为4月1日至4月30日,活动期间转发本链接,阅读量排名前十的QQ网友将免费获得价值89元的《31天学会CRM项目开发》一本。如何参加活动?划到最后面,输入您的QQ号,单击“我要报名”,然后分享到您的朋友圈。QQ号是领取赠书的唯一凭证。活动最终解释权归举办方所有。原创 2016-04-05 16:45:26 · 1453 阅读 · 0 评论 -
如何自动拼接 Update语句,仅Update已修改的字段
我们通常使用update语句更新数据库记录,例如使用update user set username='001', nickname='Tom', age=18 where id = 1语句更新username、nickname或age字段的值。假设,我们只修改了username,并没有修改nickname和age,那么上面的sql就显得多余了,改成update user set username='001' where id = 1才算完美,即哪些字段发生了变化就更新哪些字段。原创 2016-07-25 21:49:20 · 2214 阅读 · 0 评论 -
WebClient以POST方式发送Web请求
本例使用WebClient以POST方式发送Web请求并下载一个文件,难点是postData的构造,发送Web请求时有的网站要求可能要求Cookies前后一致。其中application/x-www-form-urlencoded会告诉服务器该参数是以param1=value1¶m2=value2¶m3=value3方式拼接的。原创 2016-07-27 22:54:30 · 5521 阅读 · 0 评论 -
DataGridView如何快速导出Excel
从DataGridView或DataTable导出Excel文件,为了按照数据类型设置单元格格式,导出Excel时速度都比较慢,一直找不到好的办法。最后从外文网站上找到解决办法,使用ws.get_Range(excelRange, Type.Missing).Value2方法批量设置单元格的值。原创 2016-07-20 21:05:26 · 1324 阅读 · 0 评论 -
C#人民币金额大写
这是一项经典编程题,笔者也曾将此题作为面试题。1.业务要求。人民币大写金额用到的汉字主要包括零、壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿等。人民币大写金额有如下注意事项:中文大写金额数字到“元”为止的,在“元”之后、应写“整”(或“正”)字;在“角”之后,可以不写“整”(或“正”)字;大写金额数字有“分”的,“分”后面不写“整”(或“正”)字。原创 2016-08-04 21:00:49 · 3943 阅读 · 5 评论 -
HYAppFrame(WinForm框架源码)安装部署指南
HYAppFrame是一款基于Win form的开源应用程序框架,包含服务器Web Service、主程序框架、组织架构、权限控制、菜单导航、基础数据、系统参数、日志管理、定时任务等。原创 2015-07-24 15:06:34 · 5523 阅读 · 4 评论 -
在Asp.Net MVC项目中创建一个API
最近在忙一个MVC项目,Leader要求创建一个API,可通过某个link获得某个记录的信息。本来想通过View来返回一个JSON记录,当我创建Controller时发现有一个API Controller,想必是MVC已经具备这个功能了,所以抱着试一试的心态,迅速补习了一下MVC API知识,马上现学现卖。原创 2017-07-28 16:22:47 · 1373 阅读 · 1 评论 -
c# Winform发邮件失败,附件过大
发邮件应该是一个很简单的功能,结果一加上附件就失败,以为附件比较大,但是附件才3M,也算大吧。前后检查代码,测试又测试,理论上都是对的,但就是失败。在百度中搜索发送邮件,附件过大,几乎找不到。然后,在google中搜索System.Net.Base64Stream.EncodeBytes 邮件发送失败找到文章http://stackoverflow.com/qu原创 2013-12-19 11:39:23 · 1222 阅读 · 0 评论 -
该字符串未被识别为有效的 DateTime。有一个未知单词(从索引 0 处开始)。
在使用DataGridView的时候,突然遇到该字符串未被识别为有效的 DateTime。有一个未知单词(从索引 0 处开始)。而此前一直都是这么用的,怎么会出错了,检查检查去,还真是将字符设置成了DataGridViewDateTimeInputBox,哎,看样子是年纪大了的缘故。不过也不算坏,正好发现了另一小问题。原创 2012-11-30 09:45:23 · 7047 阅读 · 2 评论 -
需要参数 '@',但未提供该参数
遇到错误参数化查询 '(@cId int,@cate int,@code nvarchar(7),@name nvarchar(2),@cusCode'需要参数 '@memberSale',但未提供该参数。 在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakCon原创 2012-12-04 14:00:06 · 3023 阅读 · 0 评论 -
DataGridView分次加载数据
例如,有上千条记录,如果一次性加载,势必会影响效率,分页读取似乎能解决问题,但是在DataGridView中加上分页按钮也比较麻烦。此前,使用过Oracle Form,一次会显示一些数据,而当数据比较多时,可以通过滚动条继续加载数据,我觉得这种实现方式比较好。1、首先找到DataGridView的滚动条事件这个比较好找,dataGridViewX1_Scroll(object sender原创 2012-11-22 10:51:09 · 1503 阅读 · 0 评论 -
存储过程,从数据类型 nvarchar 转换为 int 时出错
使用Sql Server创建一个存储过程,执行时exec bomdetail[1],没有问题,后来加了一个参数,结果就报如下错误消息 8114,级别 16,状态 1,过程 bomdetail,第 0 行从数据类型 nvarchar 转换为 int 时出错。百思不得其解,难道exec bomdetail[1,1]有问题么?于是修改成exec bomdetail 1,1,还真顺利执原创 2012-12-07 11:38:35 · 2177 阅读 · 1 评论 -
使用StyleCop对C#代码规范化检查
代码倒是写了不少,但是否符合规范?是否高效呢?凡事都会有个标准,有个参照。对C#来说,StyleCop是不二选择,它起源于微软,后来开源了,真是个好消息。到官方网址 :http://stylecop.codeplex.com/ 下载,默认安装后,选择你的项目右键,然后选择Run StyleCop。StyleCop对中文支持的不好,所以可以禁用中文拼写。具体规则可在Style原创 2012-12-24 17:32:45 · 1177 阅读 · 0 评论 -
卸载 Appdomain 时出错
使用C# RDLC报表时遇到错误“卸载 Appdomain 时出错”原因是我在调试模式下,然后打开Form时使用的是ShowDiaolog,改成Show就好了。原创 2012-12-25 14:52:42 · 2063 阅读 · 0 评论 -
给webBrowser.DocumentText赋值不起作用
在Winform中打算用网页来显示一段文本,就想到用webBrowser索性直接webBrowser.DocumentText=网页源码,结果什么都不显示。搜寻之后,有人建议this.webBrowser1.ScriptErrorsSuppressed = true;this.webBrowser1.Navigate("about:blank");this.webBrows原创 2012-12-19 15:41:33 · 1830 阅读 · 2 评论 -
rdlc报表An error occurred during local report processing错误
在开发环境的电脑上可生成报表,但是一到客户端就提示An error occurred during local report processing错误。猜想是缺dll,补充上Microsoft.ReportViewer.Common.dllMicrosoft.ReportViewer.WinForms.dll结果问题依旧,难道还缺?google后得知还缺一个Microsof原创 2013-02-02 09:10:11 · 18479 阅读 · 3 评论 -
DataGridView填充单元格颜色
DataGridView填充单元格颜色double v = 0;double thickness = 20;if (FunctionLib.IsDouble(this.tbThickness.Text)) thickness = double.Parse(this.tbThickness.Text);Color color;foreach (DataGridViewRo原创 2013-03-22 09:43:50 · 1033 阅读 · 0 评论 -
第一次使用C#开发Winform报表
水晶报表已经名声在外,但是这里我们使用VS2010中自带的rdlc报表。第一步,创建数据集,并定义数据集第二步,创建rdlc报表第三步,创建ReportView第四步,加载数据String sql = "exec dbo.hsj_projectcostbaojia @headerId";FunctionLib.openDatabase(原创 2012-12-25 19:43:19 · 2822 阅读 · 0 评论 -
dotNet程序反编译及混淆
用.net的都应该知道,.net程序可以通过各种工具轻易查看到源码,程序不再安全。例如一个.net的exe文件通过ILSpy查看,几乎和源代码一模一样:我们当然不能这样就把程序交付给用户,至少需要处理一下,虽然也不是绝对安全,但也要提高难度。于是,我选择可代码混淆器dotNet Protector,混淆后,再次查看这个.net程序这次,可以看到代码经过了处理,看起来似乎原创 2012-12-23 10:34:02 · 1587 阅读 · 1 评论 -
ERP通用导入工具
用途:可将Excel表中的数据模拟手工录入到ERP或U8的表格中,间接达到导入数据的目的。现状:存在大量Excel电子数据,由于ERP或其他业务应用软件通常不提供导入工具,导致不得不手工录入到系统,效率低下。效果:已在U8中测试,非常好用,得到采购员、仓管员一致好评。操作:系统预置了光标移动路径,可灵活设置,几乎可满足全部的电子表格。VN 表示在当前光标所在单元格写入Excel表第原创 2013-08-06 20:22:48 · 1268 阅读 · 0 评论 -
Sql Server数据库连接是否需要每次都打开?
书本上告诉我们,当执行数据库操作时,首先需要打开一个数据库连接,然后执行数据库操作,最后,再关闭数据库连接。使用asp和php编程时都是这样处理的。后来使用java+hibernate+mysql,通过hibernate配置连接池,可直接通过new HibernateEntityLoader().getSession();获得一个数据库连接,未曾考虑连接效率或会存在什么问题。原创 2013-08-27 09:15:36 · 3774 阅读 · 0 评论 -
.net4.0中引用.net2.0的dll
在一个.net4.0的项目中要引用一个基于.net2.0的dll,直接添加应用后,无法使用,也无法编译,提示目标框架不能加载引用。目标框架式.net 4.0 Client Profile和.net4.0不一样。原创 2013-09-11 11:39:43 · 3104 阅读 · 0 评论 -
在VS2010中集成AutoVue20.2.1控件
断断续续摸索了一个月终于算是解决了,虽然不完美,但总算达到目标。目标:在VS2010中集成autovue控件,用于文档或图纸浏览。原创 2013-10-09 15:51:57 · 8148 阅读 · 18 评论 -
C#编写Windows服务及安装
1、创建项目时,选择Windows服务2、在OnStart、OnStop中添加代码 protected override void OnStart(string[] args) { //; } protected override void OnStop() {原创 2012-11-02 08:25:23 · 771 阅读 · 0 评论