自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 资源 (31)
  • 问答 (1)
  • 收藏
  • 关注

原创 vue 重新渲染dom

如果需要强制重新渲染一个组件,可以使用key属性。当key改变时,Vue会认为这是一个不同的元素,并且会创建一个新的DOM节点替换旧的节点。下面是一个简单的例子,在这个例子中,每当你点击按钮时,componentKey的值会增加,因此key属性会变化,Vue会认为需要被重新渲染。这种方法可以强制Vue去重新渲染一个组件,从而更新其DOM。

2024-03-19 21:42:03 317

原创 .netcore 通过实体修改mysql记录行提示 MySqlConnector.MySqlException:“Field ‘order_proid‘ doesn‘t have a default

MySqlConnector.MySqlException:“Field 'order_proid' doesn't have a default value”mysql Update表记录,碰到一个非常奇怪的问题,有哪位大佬碰到过没有。不管怎么设置字段允许为空,他都提示这个字段没有默认值。分两个晚上尝试了几个小时,目前还未能解决。留坑,解决了再来更新。然后又尝试直接用sql去update表字段。从代码层面是解决不了问题了。

2024-03-11 21:06:13 403

原创 使用modbustcp从PLC设备取得的ushort[2] 数据转换为int32大端模式

大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点类似于把数据当成字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。小端模式:是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。* buff[0] (0x12) --高位。* buff[3] (0x12) --高位。* buff[0] (0x78) --低位。

2024-02-04 11:15:53 452

原创 .net winform 使用NModbus4建立 modbus tcp通讯

net winform 使用NModbus4建立 modbus tcp通讯

2024-01-29 16:40:46 1192

原创 modbus poll测试工具测试modbus tcp与PLC设备连接使用方法

上面的配置正确之后,会生成RTU和ASCII命令,如果上面的配置能正常读到PLC的温湿度数据,那么就可以直接用这个RTU命令格式来作为上位机命令格式去组装命令了。读写数量:2 (1个字(qword)等于16位,不是通常的一个字节8位,所以2个字就组成了32位,通常我们说4个字节才有32位)起始地址:1 (这个1相当于PLC地址里面的尾数,比如地址30001,起始地址就是1,PLC地址30003起始地址就是3)modbus poll测试工具或者用TCP调试工具, 给寄存器地址03发命令码04。

2024-01-24 16:46:57 700

原创 abpvnext给基础表abpuser增加扩展表扩展注册用户业务

【代码】abpvnext给基础表abpuser增加扩展表扩展注册用户业务。 操作角色表abproles、租户表abptenants、用户表abpusers、用户角色表abpuserroles。

2024-01-11 16:31:23 470

原创 docker 相关常用命令---持续更新

查看容器站点运行日志 --tail=500 查看500行, 后面的是容器ID。删除镜像--通过id删除。删除容器--通过id删除。

2024-01-03 17:20:24 815

原创 project的甘特图导出excel,提示域“任务名称”不存在

在最左侧选 导出 ,然后页面中,我们找到位于中间页面左上方的“将项目另存为文件”选项,点击该选项即可。如下图所示,我们看到提示某个域的名称不存在是,可以在列标题上右键点这个列,然后选择域设定,就可以在下面的第二个图中看到实际域名称是“名称”,列标题是“任务名称”,所以我们在导出那里选择域的时候只能输入名称,才能导出对应的任务名称列。到这一步 在左侧project域里录入“任务名称” 回车,就提示域“任务名称”不存在,但是上面图中明明看到软件自动生成的列名利有任务名称。2、导出页面选择和设置。

2024-01-03 11:13:11 597

原创 abpvnext框架的项目部署到linux arm64版的docker中

接下来其他的步骤就跟原来差不多了, 部署到arm64平台的系统,要注意的就是发布的时候指定平台linux-arm64 , dockefile里面第一行要加指定平台参数-focal-arm64v8,然后创建镜像的时候如上面命令也要指定平台参数--platform linux/amd64。注意啊,如果命令从文档复制过来在执行总是失败,然后又确定容器名和端口没有重复,那就自己手工敲命令,比如我上图这样, 坑死了, 复制修改了容器名,和端口很多遍都是失败, 手工敲就没问题了。

2023-12-20 17:06:05 1134 1

原创 VOL-vue 框架 文件上传控件关于大文件上传等待的修改

但是控件VolUpload.vue并没有去在这方面做任何交互体验上的控制,而且VolUpload.vue本身写的几个上传函数都是异步的,OSS接口可能也是异步的,实时等待状态返回不现实。经过很久的修改调试,我做出如下修改,给上传按钮增加 :disabled 属性绑定,默认false即为按钮可用,在点击上传按钮时,disabled改为true不可用,然后等OSS返回200状态时再改为false可用。

2023-12-10 21:18:51 558

原创 vue 使用 h函数

我需要用连接就是'a',这个是没错的,那第二个参数是要传递的属性,我开始以为只要传递属性值就可以了,然后仔细看示例发现人家是花括号里面成键值对的描述属性值的,所以我的第二个参数关于链接属性值应该写成 {href:text,text:"文件下载",target:"_blank"}。最后结果应该是 return h('a', {href:text,text:"文件下载",target:"_blank"});return h('a', {href:text},() =>"文件下载");

2023-12-08 10:16:41 583

原创 netcore swagger 错误 Failed to load API definition

后来我就清理编译dll ,重新编译再启动后端调试,登录后端服务接口,重新进入到swagger界面之后,控制台有提示具体接口报错了,错误截图如下。根据提示找到控制器代码位置,其实还是接口缺少attribute,加上 HttpPost和SwaggerOperation属性就没有问题了。根据网上查询到的资料说明,说一般swagger这种错误都是控制器里有接口代码异常造成的,通常是接口没有加属性Attribute, 比如[HttpPost("Delete")]、[HttpGet("Delete")]。

2023-12-04 13:48:38 853

原创 .netcore 操作aspose.words导出pdf

控制图形的显示位置,这个地方好像必须要选一个位置,否则会内容显示不全,我开始用的LegendPosition.None,他就显示不了那几条线的颜色和名称说明文字。为了搞出这个效果浪费了我一天时间。个人重点关注的是生成曲线图的部分,浪费了我很多时间。

2023-12-01 14:01:54 873

原创 netcore 获取应用程序或者站点根路径的一点知识和教训

然后调试了很久,各种办法试,发现http方式只能访问到项目的根目录JQ.TAHM.HttpApi.Host这一级,在这一级的wwwroot目录里的文件是可以访问到的。但是往下的 bin\Debug\net6.0\wwwroot\File\Report\20231130 这种,http他是访问不到的。但是我是在一个业务类里面实现pdf文件生成,为了保持这个业务类的相对独立性,我又偷懒不想将IWebHostEnvironment通过控制器逐层传递依赖注入到业务类里面。鬼使神差的不知道怎么的搜到了可以使用。

2023-11-30 15:38:24 624

原创 vue 中 js 金额数字转中文

我使用的框架vol.core。客户需求要将录入框的金额数字转换成中文在旁边显示,换了几种函数,最终确定如下函数。在公共函数库文件common.js中增加一个函数changeToChineseMoney,然后到页面代码中调用。

2023-11-26 13:34:29 581

原创 .netcore 获取appsettings

.netcore 获取appsettingsIConfiguration myconfiguration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json").Build();

2023-11-24 17:14:34 939

原创 关于mysql自增列起始值与数据实际id不一致的问题

这大致说明这个表的自增ID他现在的初始值。然后脚本执行数据插入的时候到了这个ID他就报错了。而且sys_log表他现在的实际数据ID不是51110,远大于这个id数字。那我想着能不能修改自增列的初始值,结果还修改不了。从一个数据表生成表结构和数据的脚本之后。把脚本复制到另一个数据库执行同步数据结构和数据。

2023-11-07 14:19:09 277

原创 echarts折线图y轴刻度自适应

在做温湿度趋势曲线图时,我碰到了如下图这样的问题。我的实际值,都没有超过100的刻度的,但是他y轴的刻度线都到了250去了,这样完全不对。最后在请教了前端群里高手指点之后,去掉了series 下面的每根线的 stack 属性。y轴刻度他就能根据实际输入值来自适应了。尝试过强行给y周刻度设置最大最小值 ,但是结果也不对。

2023-10-26 17:24:50 974 1

原创 vben 的DatePicker日期组件弹出选择框被遮盖问题

他的弹出框选择日期界面,会被遮盖了,在日期组件的componentProps属性里加上getPopupContainer: () => document.body就能解决问题。如上所示,我在vben 页面里面,PageWrapper 元素中引入了FormSchema,里面包含日期框,

2023-10-17 16:24:49 237

原创 Component inside <Transition> renders non-element root node that cannot be animated.

大致意思是要用div做根节点,把vue的元素包起来,不让vue元素直接作为根节点,在元素下加一层div即可,如下图。有道翻译过来是说 中的组件呈现不能动画化的非元素根节点。如上图所示警告提示,然后任何一个页面菜单都显示不出来了。然后网上搜索出来有的解决方案是说,需要给vue页面上层加div。

2023-10-17 15:29:22 188

原创 资源池 ‘internal‘ 没有足够的系统内存来运行此查询。

之前客户那边时不时出现这个异常,我还以为是我的程序或者sqlserver有什么漏洞, 原来就是内存耗尽了, 客户还屁都不出声,我都截图几次给他看这个关于内存的异常了。不知道那人在服务器上偷摸搞什么鬼,感觉像是故意搞出问题的。刚才调试程序把自己电脑内存耗费太多,然后造成测试的一个EXE连接SQLserver报错。资源池 'internal' 没有足够的系统内存来运行此查询。2023-9-21 记录。

2023-09-21 17:25:10 577

原创 查询sqlserver内存分配情况的SQL

USE masterGO;RP.Name ,c.Name ,

2023-09-07 16:48:43 395

原创 vue报错RangeError: Maximum call stack size exceeded

2、检查自己设置的路由本身是否有问题,我是检查了路由指向的vue代码很久之后,实在没发现问题,然后检查路由设置,发现了如下问题,/loginout 这个路由他的重定向属性也指向 /loginout,这就有问题了,假设/loginout有问题,重定向还指向他自己,就是个死循环了。比如路由指向的vue文件里代码有错误,或者设置路由时重定向了路由自己,造成死循环。1、首先检查自己跳转的路由地址的代码本身是否有语法错误之类的,造成错误,一般没有特别好的办法,挨个注释去检查。

2023-08-28 20:33:06 1961

原创 外部链接和VUE项目互相跳转实现退出登录

外部链接直接跳转到vue项目,vue项目的createRouter总是会人为的给链接路由换成/home。如果是直接用vue项目默认路由 #/home/再带其他参数跳转过去,vue项目不会再去把路由全部替换成/home,这时候后面再加自己的路由loginout和参数啥的就没问题了,顶多在router.beforeEach拦截路由的时候判断一下loginout,to.fullPath.indexOf("loginout")>0,来执控制他不执行跳转到别处。

2023-08-28 10:46:34 543

原创 在.NETMVC项目中用js代码base64加密字符串,vue项目中base64解密

1、获取base64.js 推荐使用npm下载:npm install --save js-base64,下载后在node_modules文件夹下面就能找到需要的base64.js。2、在普通的html文件中使用:直接将js引入使用。使用Base64.encode加密字符串,注意问号我没加密,是为后面vue项目中拦截路由准备的。我是直接到vscode中执行npm install --save js-base64 下载的。

2023-08-15 22:50:31 167

原创 外部链接跳转到vue项目传递参数实现单点登录

这一步其实vue比较熟悉的朋友很容易就想到了,用router.beforeEach 钩子函数来拦截路由,然后解析url中的参数,一般情况下vue项目内部路由之间是不可能去通过url来传递参数的,所以这个地方其实加了拦截规则也只会对外部跳转url的参数有用。首先前台门户的mvc项目跟后台vue项目他们是不同的站点,mvc项目端口是9995,vue项目的端口是9995。这个需求中mvc项目相对于vue项目来说是外部链接,他要跳转到vue项目,并传递登录的用户信息给vue项目,才能让vue项目免除登录。

2023-08-05 15:19:36 1189

原创 asp-action不生效需要加TagHelpers引用

在照着微软官网示例做MVC分页的时候。我加的asp-action(请求路由名称)属性一直不生效,加了asp-controller(请求只想的控制器))也不能产生请求到后端。指定了'href'的不能有以'asp-route-'开头的属性,也不能有'asp-action'、'asp-controller'、'asp-area'、'asp-route'、'asp-protocol'、'asp-host'、'asp-fragment'、'asp-page'或'asp-page-handler'属性。

2023-07-20 11:52:50 203

原创 DotNet VOL.Core框架学习使用笔记(二)(持续更新)

页面对应的js文件中增加如下 this.columns.push 函数内容。按钮的点击事件 重点代码 this.edit(row);这就是框架里编辑按钮对应的buttons.js中打开编辑界面操作的函数。生成代码的列表界面,在数据行里增加一个操作列 查看按钮,打开编辑框,然后让编辑框成为一个只读的查看界面。

2023-07-05 21:00:32 1225

原创 DotNet VOL.Core框架学习使用笔记(一)

但是这种方式后来又发现有问题,他只是隐藏了pane,而pane里面的内容并没有隐藏,比如我是一个pane里面有一个类似自定义页的标签,这个标签指向的页面内容无法隐藏。最后是用得v-if来解决问题。3、2个菜单指向的都是同一个表的数据, 只是根据一个字段类型不同筛选不同的数据列表, 代码生成要怎么处理,另一个用视图生成代码,或者看视频上的表配置多个菜单。框架文档的 组件API ,源代码的表单布局-多列表单菜单,有复选框的示例,不过可能先要学会怎么用,不然搞不定。

2023-06-23 11:19:03 2149

原创 Host is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts‘解决办法

我在用abpvnext框架的 后台工作者写定时服务业务时,因为定时间隔设置的2秒,时间太短,然后频繁连接mysql。造成了如上错误提示,mysql直接被锁死不能连接了。他会提示要输入root密码,密码正确就执行成功了,我输入密码错了几次,所以failed几次了。执行命令:mysqladmin -u root -p flush-hosts。输入命令:dirname /usr/sbin/mysqld。(2)、进入mysql安装目录,然后执行命令解锁连接。(1)、连接linux,查看mysql的安装目录。

2023-06-06 16:07:45 2158

原创 执行dotnet ef database update EF同步数据表时报错 Duplicate column name ‘xxx‘

然后编译JQ.TAHM.EntityFrameworkCore工程, 再次执行 dotnet ef database update。只不过我新增的业务表在数据库也没有创建成功,因为新增加的20230602092423_tahmCollectJob_init.cs文件类里压根就没有我新增加的表和字段的创建内容。然后我打开新增加的init代码初始化文件,发现他居然只有ExtraProp这一个字段的初始化代码,而这个还偏偏不是我需要修改的字段。我为abpnext项目加了一个新表的业务代码。

2023-06-05 12:05:11 281

原创 .net生成PDF文件的几种方式

dll可以单独下载,一般在电脑中有,位置:C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\vs\199bd4f2\edef3bc1\assembly\dl3\60e90863\53bea978_07e9d401\Microsoft.Office.Interop.Word.DLL。" + "这是中文"));//System.Diagnostics.Process.Start("PDF创建.pdf");

2023-06-02 21:11:49 1716

原创 数据库维护脚本摘选

数据库维护脚本

2023-06-02 21:08:26 463

原创 PowerDesigner逆向工程到Mysql操作步骤

powerdesigner是32位程序,而你安装的64位ODBC程序,因此:在X64系统中,一定要先装X64版的ODBC驱动,不然,在ODBC驱动列表中无法找到其驱动类型,然后powerdesigner连接ODBC时(32位的程序连接ODBC),还是要安装X86的驱动程序(注意X64版的程序不要卸掉)。5、再点确定,即可弹出数据库的表选择窗口,选择你需要导入的数据库和相应的表之后,点确定,就开始从MySql导入了。1、首先要确保机器安装了MySql的ODBC驱动,去。

2023-06-02 21:08:17 986

原创 TortoiseGit的安装及使用, 并配合Gitee码云使用

完成后, 出现Key, 复制, 把 == 好之前的都复制, 然后来到你的Git网, 添加SSH, 把 2 箭头也点了, 保存private key保存在一个文件夹中,2) 点击下载, 安装, 我选择的是64位, 中文安装包(说明: 中文安装包也分32, 64位), 这两个下载.一直点击 Next > 就行, 安装完成后, 先运行,不要关, 然后再安装语言包, 选择语言.③ 右键, 点击提交, 出现对话框, 添加日志消息, 点全部, 点击提交。创建成功后, 此URL就是上面所需, 点击复制.

2023-05-30 11:11:44 1235 1

原创 wpf工程中加入Hardcodet.NotifyIcon.Wpf生成托盘

注意在application中一定要加入这一行代码: xmlns:tb="http://www.hardcodet.net/taskbar"1、在项目中用nuget引入Hardcodet.NotifyIcon.Wpf。2、在App.xaml中创建托盘界面,代码是写在 App.xaml.cs 里面。然后在中加入如下代码。

2023-05-19 12:14:46 876 1

原创 abpvnext后台工作者使用quartz扩展的一些思路和使用细节记录--(未完待续)

2、搞一个普通的后台工作者,比如定时1分钟去扫描一次setinfo表,然后遍历分析看看每个租户的各项需要执行的判定周期是否有变动,如果有变动就到job队列表,新增或者修改这个租户对应的执行业务类型的周期值。租户id,执行的业务类型(按setinfo表对应的设置字段名来填),执行时间间隔,上次执行时间,执行次数(可选),失败次数(可选),执行状态锁(1执行中,0空闲中)。我有一个温湿度数据采集的物联网系统,每个租户都需要定时执行若干种任务, 不同的租户, 他定时执行的间隔不一样 ,比如。

2023-05-12 15:21:51 848

转载 【转载】DDD中的 CQRS模式

同样的,CQRS 在带来架构自由与便利的同时也不可避免的引入了额外的复杂性与技能要求,例如对于分布式事务,消息中间件的管理,数据模型的设计等等,所以在引入 CQRS 之前需要对团队能力与现有架构做仔细的分析,对短板进行必要的提升。假设在用户需要一个订单相关信息的查询功能,展现的是查询结果的列表。而在实践过程中必然会面临许多的问题,「模式」是系统架构领域中一种常见的手段,能够帮助开发人员与架构师在遭遇某种较为棘手,或是陌生的问题时,参考已有的成熟经验与解决方案,从而优雅的解决自己项目中的问题。

2023-05-10 16:19:27 229

原创 sqlserver创建维护计划和注意事项

4、选择清除维护任务、备份数据库(完整),具体解释上一步已经阐述。的任务,这时候2个任务就需要分别建立计划,不然选下面那个整个计划统筹安排,根据我之前实践的经验,大概率清除历史记录是执行不了了。这个很关键,比如我需要在这个维护计划里每天备份数据库,这样一定时间之后数据库备份就会很多了,那同时我就需要一个。我们可以选定特定数据库保存,下面还有个计划,可以点右侧的更改,去修改每次执行计划的时间。总结:要能按预定计划删除过期备份文件,最好是单独设定清除维护计划任务。2、进入维护计划,右键创建维护计划向导。

2023-05-10 11:25:56 1925

原创 abpvnext关于事件发布和订阅的注意事项

最近在一个已经写了两个本地事件订阅的handler类上添加一个事件订阅方法,并实现自己想要的业务逻辑。后来忙着做老系统业务去了就暂时没关注这个问题了。今天又来调试这个问题,然后刚才打开abp官网看了一眼,突然看到一句话。结果一看,确实是在handler类定义这里少引用了一个本地事件类。我下面实现代码有写3个事件订阅,但是这里只引用了2个事件类, 如下图所示。我检查了一下自己的handler类,看看类定义时是否继承引入了那个订阅不出来的新的事件。加上这个引用之后,我新加的订阅立马就能进入调试断点了。

2023-05-05 14:44:42 319

js-base64-3.7.5.tgz

js-base64-3.7.5.tgz

2023-08-15

两个linux常用命令集合

linux常用命令集合

2023-02-17

SIMCOM平台AT命令中文参考

SIMCOM平台 AT命令 中文参考

2022-07-06

oracle9数据仓库指南.pdf

oracle官网上下的,从这里下应该会比较快点吧。E文原版,看起来可能要费力。

2021-04-15

WindowsFormsApp2.rar

一个用GDI+ 和label 动态生成的2D立体截面的小DEMO,做的还不是很完美,欢迎各位大佬指正

2021-03-19

CSV制药行业相关资料.rar

1-Preparing-for-CSV-V2-如何准备你的计算机系统验证.pdf 制药行业CSV计算机信息系统验证方案20170916.pdf 制药生产自控设计与CSV验证.pdf

2020-03-13

System.Drawing DrawData 绘制饼图 折线图 柱形图等的帮助类

// <summary> /// 绘制折线图 例如DrawData.DrawPolyonLine(pictureBox1.Width,pictureBox1.Height ,"2000-3000年比例","6,8,10,12,14,16,18,20,22","个","1,2,3,4,5,6,7,8,9,10,11,12","年","12,6,8,10,12,14,16,18,20,2,11,11"); /// </summary> /// <param name="ImgWidth"></param> /// <param name="ImgHeight"></param> /// <param name="Title"></param> /// <param name="LeftName"></param> /// <param name="LeftMinNum"></param> /// <param name="LeftAvgNum"></param> /// <param name="BottomName"></param> /// <param name="Data"></param> /// <returns></returns> static public Image DrawPolyonLine // <summary> /// 绘制饼形图 /// </summary> /// <param name="imageWidth"></param> /// <param name="DataName"></param> /// <param name="DataValue"></param> /// <returns></returns> static public Image DrawEllipse(int imageWidth, string DataName, string DataValue) /// <summary> /// 绘制柱形图 例如: DrawData.DrawPillar(pictureBox1.Width, pictureBox1.Height, "2000-3000年比例", "1,2,3,4,5", "23,11,44,22,11"); /// </summary> /// <param name="ImgWidth"></param> /// <param name="ImgHeight"></param> /// <param name="Title"></param> /// <param name="BottomName"></param> /// <param name="Data"></param> /// <returns></returns> static public Image DrawPillar(int ImgWidth, int ImgHeight, string Title, string BottomName, string Data)

2020-02-28

FolderAndFile.cs

/// <summary> /// 创建文件夹(不存在则新建) /// </summary> /// <param name="Path"></param> public static void FolderCreate(string Path) /**************************************** * 函数名称:DeleteFolder * 功能说明:递归删除文件夹目录及文件 * 参 数:dir:文件夹路径 * 调用示列: * string dir = Server.MapPath( "test/"); * EC.FileObj.DeleteFolder(dir); *****************************************/ /// <summary> /// 递归删除文件夹目录及文件 /// </summary> /// <param name="dir"></param> /// <returns></returns> public static void DeleteFolder(string dir) /**************************************** * 函数名称:CopyDir * 功能说明:将指定文件夹下面的所有内容copy到目标文件夹下面 果目标文件夹为只读属性就会报错。 * 参 数:srcPath:原始路径,aimPath:目标文件夹 * 调用示列: * string srcPath = Server.MapPath( "test/"); * string aimPath = Server.MapPath( "test1/"); * EC.FileObj.CopyDir(srcPath,aimPath); *****************************************/ /// <summary> /// 指定文件夹下面的所有内容copy到目标文件夹下面 /// </summary> /// <param name="srcPath">原始路径</param> /// <param name="aimPath">目标文件夹</param> public static void CopyDir(string srcPath, string aimPath) /// <summary> /// 复制文件 /// </summary> /// <param name="srcPath">源文件</param> /// <param name="aimPath"></param> public static void CopyFile(string srcPath, string aimPath) /**************************************** * 函数名称:GetFoldAll(string Path) * 功能说明:获取指定文件夹下所有子目录及文件(树形) * 参 数:Path:详细路径 * 调用示列: * string strDirlist = Server.MapPath( "templates"); * this.Literal1.Text = EC.FileObj.GetFoldAll(strDirlist); *****************************************/ /// <summary> /// 获取指定文件夹下所有子目录及文件 /// </summary> /// <param name="Path">详细路径</param> public static string GetFoldAll(string Path) /// <summary> /// 获取指定文件夹下所有子目录及文件函数 /// </summary> /// <param name="theDir">指定目录</param> /// <param name="nLevel">默认起始值,调用时,一般为0</param> /// <param name="Rn">用于迭加的传入值,一般为空</param> /// <returns></returns> public static string ListTreeShow(DirectoryInfo theDir, int nLevel, string Rn)//递归目录 文件 /// <summary> /// 获取指定文件夹下所有子目录及文件(下拉框形) /// </summary> /// <param name="Path">详细路径</param> /// <param name="DropName">下拉列表名称</param> /// <param name="tplPath">默认选择模板名称</param> public static string GetFoldAll(string Path, string DropName, string tplPath) /// <summary> /// 获取文件路径的后缀名 /// </summary> /// <param name="filePath"></param> /// <returns></returns> public static string GetFileSuffix(string filePath)

2020-02-28

GDIReport.cs 用GDI画报表并生成图片

/// <summary> /// 生成折线图报表图片 /// </summary> /// <param name="width"></param> /// <param name="height"></param> /// <param name="bottomStr"></param> /// <param name="isDrowXline">是否划竖线刻度</param> /// <returns></returns> public byte[] BuildTrendPic(int width, int height,string bottomStr,bool isDrowXline=false) /// <summary> /// 求数组中的最大数 除以5后的数 用于y轴间隔 /// </summary> /// <param name="tempArray"></param> /// <returns>最大值,最小值,平均值</returns> private List<int> ySpanAvg(List<float> tempArray)

2020-02-28

System.Drawing.Drawing2D GraphEdit 曲线图帮助类

System.Drawing.Drawing2D GraphEdit 曲线图帮助类 /// /// 获得当前数据画出的曲线面积图 /// /// 需要绘制的数据 /// X轴范围(data数据里面的实际范围) /// Y轴范围(data数据里面的实际范围) /// 是否需要面积填充 /// 当前的曲线面积图 public Image GetCurrentGraph(List data, float xRange, float yRange, bool isFill) /// /// 数据排序 /// /// /// private List SortingData(List lp)

2020-02-28

Microsoft.Office.Interop.Word 操作帮助类

// /// word转pdf /// /// /// /// public bool WordToPdf(object sourcePath, string targetPath,string passWord) /// /// 从源DOC文档复制内容返回一个Document类 /// /// 源DOC文档路径 /// Document public Document copyWordDoc(object sorceDocPath) /// /// 替换指定Document的内容,并保存到指定的路径 /// /// Document /// 保存到指定的路径 public void ReplaceWordDocAndSave(Document docObject, object savePath, List findText, List replaceText) /// /// 用TypeText替换word中的文本 /// /// 模板路径 /// 保存文件路径 /// 待替换的数据和被替换的标签 /// 图形报表需要填充的数据 public string TypeTextToWord(object tempFilePath, object physicNewFile, Dictionary ReplaceDatadic) /// /// 查找替换Word内容并进行替换 /// 用于文档中大段文字替换 /// 解决WORD文字写入时255个字符限制 /// /// WORD文档 /// 查找的标记 /// 替换的文字 public void FindAndReplaceLong( Application wordApp, object findText, object replaceText) /// /// 查找替换Word内容 /// 主要用于文档中多个标记的逐一替换 /// /// WORD文档 /// 查找的标记 /// 替换的文字 public void FindAndReplace( Application wordApp, object findText, object replaceText)

2020-02-28

NPOIWordHelper.cs

IPOI操作word的帮助类 /// /// 创建文档 /// /// public static void ExportDocument(DocumentSetting setting) /// /// 设置文档 /// public class DocumentSetting /// /// 文档内容相关 /// public class ContentItemSetting /// /// 纸张类型 /// public enum PaperType /// /// 获取纸张大小,单位:Twip /// 换算关系:1英寸=1440缇 1厘米=567缇 1磅=20缇 1像素=15缇 /// /// /// private static Tuple GetPaperSize(PaperType type)

2020-02-28

SocketHelper.rar

public class SocketServicesHelper /// <summary> /// 启动服务 /// </summary> public void startServices public class SocketClientHelper // <summary> /// 向服务器发送消息 /// </summary> /// <param name="sendStr">消息内容</param> /// <returns></returns> public string send(string sendStr)

2020-02-09

C#串口编程帮助类SerialPortCore

//声明串口类实例 public SerialPortUtility mySp = new SerialPortUtility(); //打开串口 mySp.OpenSerialPort("COM1" /*串口号*/, 9600/*波特率*/, 0/*校验位*/, 8/*数据位*/, 1/*停止位*/); // 订阅事件 可以放在 Form_Load 中 或者其他方法中,但必须执行 mySp.ReceivedDataEvent += new EventHandler(mySp_ReceivedDataEvent); //接收数据方法 private void mySp_ReceivedDataEvent(object sender, SerialPortUtility.SerialPortRecvEventArgs args) { //对 args 对象的数据进行数据解析和数据存储 } //发送串口数据 mySp.SendData( byte[] sendData);

2020-02-05

Axure库全套_Google Material Design 900.rar

Axure库全套 Google Material Design 900个实用的Axure图标组件库 LIB002 - AxureUX交互原型Web元件库精简版

2020-02-04

ASP.NET MVC 5 框架揭秘

ASP.NET MVC 5 框架揭秘_蒋金楠_2014.08_639页

2017-06-06

15天学会jquery.pdf

15天学会jquery.pdf15天学会jquery.pdf15天学会jquery.pdf15天学会jquery.pdf15天学会jquery.pdf15天学会jquery.pdf

2010-07-12

Oracle维护常用SQL语句

Oracle维护常用SQL语句Oracle维护常用SQL语句Oracle维护常用SQL语句

2010-07-04

oracle 常用命令 TXT 最全的

oracle常用命令 TXT 最全的oracle常用命令 TXT 最全的

2010-07-04

PowerDesigner12汉化+破解

PowerDesigner12汉化+破解PowerDesigner12汉化+破解PowerDesigner12汉化+破解PowerDesigner12汉化+破解PowerDesigner12汉化+破解

2010-03-25

C#完全手册pdf文件

C#完全手册.pdfC#完全手册.pdfC#完全手册.pdfC#完全手册.pdfC#完全手册.pdfC#完全手册.pdf

2010-03-25

javascript高端程序设计精华

javascript高端程序设计javascript高端程序设计精华javascript高端程序设计javascript高端程序设计javascript高端程序设计

2010-03-25

JAVA高级开发手册

JAVA高级开发手册JAVA高级开发手册JAVA高级开发手册JAVA高级开发手册JAVA高级开发手册JAVA高级开发手册JAVA高级开发手册

2010-03-25

数据结构(C#语言版)

数据结构(C#语言版)数据结构(C#语言版)数据结构(C#语言版)数据结构(C#语言版)数据结构(C#语言版)数据结构(C#语言版)

2010-03-25

迷你PDF阅读器,非常小

迷你PDF阅读器迷你PDF阅读器迷你PDF阅读器迷你PDF阅读器迷你PDF阅读器迷你PDF阅读器

2010-03-25

XML编辑器XMLExplorer

XML编辑器 XMLExplorer XML编辑器 XMLExplorerXML编辑器 XMLExplorerXML编辑器 XMLExplorerXML编辑器 XMLExplorerXML编辑器 XMLExplorer

2010-03-25

《SQL 参考手册》中文版

SQL 参考手册 中文版SQL 参考手册 中文版SQL 参考手册 中文版SQL 参考手册 中文版SQL 参考手册 中文版

2010-03-08

java网络编程学习资料

java网络编程 学习资料java网络编程 学习资料java网络编程 学习资料java网络编程 学习资料java网络编程 学习资料

2010-03-08

新浪RSS阅读器 用起来还不错

RSS 阅读器RSS 阅读器RSS 阅读器RSS 阅读器RSS 阅读器RSS 阅读器RSS 阅读器

2010-01-20

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除