- 博客(369)
- 资源 (73)
- 论坛 (1)
- 收藏
- 关注

原创 使用Quartz.net、Topshelf、wcf命名管道制作的一个c#定时任务管理程序(热插拔)
管理端界面:编辑任务:配置说明:1.双击Manager.exe进入管理界面2.第一次使用点击左侧按钮安装服务3.服务安装好后点击开启服务4.服务开启后点击刷新,即可看到当前配置的任务情况5.若要启用、禁用、编辑、删除直接点击任务行对应的按钮即可6.若要停止或卸载服务点击左侧对应按钮即可7.若要添加任务点击左侧按钮即可8.关于任务的配置属性说明: 8.
2017-02-19 21:51:12
5121
7

原创 基于NPOI导入导出excel的工具,方便灵活
ExcelCtr参考手册一、概述基于NPOI的一种导出Excel工具,访问数据库操作依赖于DBUtil(https://github.com/jackletter/DBUtil)二、功能(1). 直接将DataTable或DataSet导出成excel(2). 使用模板将DataTable或DataSet导出成excel(3). 使用模板将泛型List导出成excel(
2017-02-12 19:17:28
2846
1

原创 一个通用数据库操作组件DBUtil(c#)、支持SqlServer、Oracle、Mysql、postgres、Access、SQLITE
DBUtil 使用说明一、简介这是一个.net下操作数据库(结构数据库)的工具类库,支持sqlserver、oracle、mysql、postgres、sqlite、access等常见数据库。注意:它并不是一个orm工具(常见的orm框架如:EF、NHibernate等)。本框架与dapper相比更加轻量,你看一看做是DbHelper的扩展封装。二、快速示例2.1 引入DBU...
2017-02-05 20:21:02
5852
2
原创 .gitignore文件
.gitignore文件用于指示git忽略指定的文件或目录。用法解释:https://www.cnblogs.com/youyoui/p/8337147.html下面是常见的写法:#:表示注释,如:# User-specific files空格不匹配任意文件,可作为分隔符,可用反斜杠转义忽略所有以xxx结尾的文件,包括子目录和孙目录,如:*.suo*.user忽略指定目录下的所有内容,目录可以是任意子级,如:x64/x86/忽略指定目录下的所有内容,从根目录起算,
2021-02-18 10:31:53
13
原创 sqlserver:sql注入防范&参数化sql
环境:sqlserver2008及以上.net core 3.1sql注入本质:接收用户输入的字符串并且将字符串拼接成sql语句执行。由于用户的故意的输入,打断了原来的sql结构。--正常语句select * from sysuser where username='admin' and pwd='123456'--被注入的语句(用户输入的用户名是【admin' --】,密码还是123456)select * from syssuer where username='admin' --'
2021-02-03 21:30:03
16
原创 c#:序列化json常见问题及处理方法
环境:.netcore 3.1在c#中,一般json序列化使用Newtonsoft.Json包,使用方法如下://序列化var json = Newtonsoft.Json.JsonConvert.Serialize(new { Id = 1, Name = "小明" });//反序列化var person = Newtonsoft.Json.JsonConvert.DeSerialize<Person>(json);class Person{ public int
2021-02-02 21:48:04
21
原创 .net core入门35:在网站中承载多个静态目录资源
环境:window 10vs2019.net core 3.1场景需求:在使用asp.net core开发的web服务器中,我们直接使用app.UseStaticFiles()中间件托管wwwroot目录下的资源,那么我们可不可以托管其他目录的文件呢?可不可以托管多个不同目录的文件呢?答案是可以的。效果实现:首先,新建一个asp.net core webapi项目;在工程下新建wwwroot目录,里面有一个login.html;准备一个其他目录,如: c:\test,里面有一个文件
2021-01-05 15:17:12
41
原创 sqlserver:使用output返回插入、删除的记录
环境:window10 x64sqlserver 2008 r2一、output的作用?首先看官网解释:《OUTPUT 子句 (Transact-SQL)》二、output应用示例先准备表:create table test( id int identity(1,1) primary key, name varchar(50), age int, addr varchar(50), birth datetime)2.1 返回insert的记录insert into te
2020-12-21 14:05:59
26
原创 redis入门(12):将redis部署到window下
环境:window 10 x64 专业版redis 5.0.10Redis-x64-5.0.10.msiredis官方没有提供window下的安装包,并且不建议安装在window下。前几年微软提供了window下的redis安装包,但已经不维护很长一段时间了,redis的版本停留在了3.x,而如今,redis已经6.x了;github上有人制作了window下的redis安装包,地址: https://github.com/tporadowski/redis,目前,支持到redis-5.
2020-12-07 10:44:31
34
原创 sqlserver:merge关键字用法
环境:window10 x64sqlserver 2008 r2参照:《SQL Server merge用法》一、CREATE TABLE category ( category_id INT PRIMARY KEY, category_name VARCHAR(255) NOT NULL, amount DECIMAL(10 , 2 ));INSERT INTO category(category_id, category_name, amount)VALU
2020-12-02 20:50:21
51
原创 .netcore入门34:配置模块、依赖注入、选项模型、日志框架在asp.net core中的关系
环境:window 10x64.net core 3.1一、配置模块参考:.netcore入门25:.net core源码分析之配置模块(IConfiguration)配置模块是.net core中的基石。它有以下几大特点:不依赖于“依赖注入容器”;可从六大数据源中抽取配置数据;如: Json、命令行、内存、xml、Jni、环境变量可以为其他模块提供配置数据;如:选项模型、日志框架;涉及到的nuget包:Microsoft.Extensions.Config
2020-11-23 17:40:08
62
原创 nodejs:window10下的nodejs基本知识
环境:window10x64 专业版node-v14.15.1-x64.msi一、安装包的下载官网:https://nodejs.org/en/download/网盘:链接:https://pan.baidu.com/s/1KbBPHA369Wm71Dy5Q4Eizw提取码:1s4x二、安装过程傻瓜式安装,除了修改一下安装目录,其他的用默认即可。安装目录最好不要有空格,我这里选的是 D:\nodejs三、安装后的变化3.1 安装后的目录如下安装后已经自带
2020-11-20 00:38:04
113
原创 c#:推荐一款拼音转汉字组件
环境:window10 x64vs2019.net core3.1组件: ToolGood.Words.Pinyin源码:https://github.com/toolgood/ToolGood.Words.Pinyinnuget: Install-Package ToolGood.Words.Pinyin -Version 3.0.1.4使用方法:[TestClass]public class PinYinTests{ /// <summary> ///
2020-11-19 15:48:29
30
原创 .netcore入门33:手写asp.net core中的日志输出组件(输出到本地文件)
环境:window 10 x64vs2019.net core3.1一、为什么要做一个输出到本地文件的日志输出组件?微软提供了一个很好的日志输出框架,也提供了基本的控制台输出组件,但没有提供输出到文件的日志组件,很是遗憾;第三方日志组件(如:NLog、Serialog、Log4net)功能虽然比较全,但也引入了其他大量的概念和规则。而对于中小型项目来说,他们仅需要输出到本地文件即可,所以在使用的便捷上总是差强人意。输出日志到本地文件即可。第三方日志组件在某些功能上也不尽如人意,比如:是否
2020-11-15 16:52:11
84
原创 .netcore入门32:asp.net core集成NLog
环境:window10 x64asp.net core 3.1vs2019NLog.Web.AspNetCore 4.9.3一、准备aspnetcore webapi项目新建一个webapi项目(工程名称:NLog-Trial)即可,略。二、安装nuget包<ItemGroup> <PackageReference Include="NLog.Web.AspNetCore" Version="4.9.3" /></ItemGroup>三、在P
2020-11-15 12:57:12
47
原创 .netcore入门31:.net core中的日志框架
环境:window10x64.net core3.1vs2019参照:《.NET Core 和 ASP.NET Core 中的日志记录》一、日志框架的概念微软为了统一日志输出代码就做了一个日志输出框架,它由以下两个包组成:Microsoft.Extensions.Logging.Abstractions(抽象定义)Microsoft.Extensions.Logging(具体实现)它有以下几个特点:日志框架构建在依赖注入框架之上;日志框架中给日志定义了两大特征:类别和级别。用
2020-11-14 17:57:47
140
原创 .netcore入门30:.net core源码分析之选项模型(IOption)
环境:window 10.netcore 3.1vs2019 16.5.1dnSpy v6.1.4 (.NET Core)一、概念及用法
2020-11-13 23:06:12
43
原创 .netcore入门29:使用nssm.exe将asp.net core控制台程序安装为window服务
环境:window10 x64企业版vs2019asp.net core 3.1nssm2.24-101nssm官网:http://nssm.cc/网盘下载地址:链接:https://pan.baidu.com/s/1eaIVQABoV_0S4Ru0gi0aig提取码:lctv我们知道,使用asp.net core开发好的程序可以直接双击运行,因为它自带kestrel,是一个标准的控制台应用程序。那么有什么办法让它变成一个window服务呢?方法一: 使用微软提供的主机托管扩展
2020-11-09 21:30:37
70
原创 c# SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
环境:window 10 x64vs2019.net core 3.1efcore 3.1.9sqlserver 2008r2原因:将0000:01:01 00:00:00插入到datetime类型溢出了,因为datetime的范围是0001-01-01到 9999-12-31!!!一、sqlserver支持的日期时间类型(全)参照:https://docs.microsoft.com/zh-cn/sql/t-sql/data-types/date-and-time-types?vi
2020-11-09 18:16:34
68
原创 c#:grpc初体验
环境:window10x64 企业版vs2019 16.7.7.net core3.1参照:《ASP.NET Core 3.0 使用gRPC》《Asp.Net Core Grpc使用C#对象取代Proto定义》一、什么是grpc?首先,RPC(Remote Procedure Call)是用来实现不同服务之间的调用的。像之前的microsoft .net remoting、WCF、WebService都是这类功能。然后,随着http和web前端的迅速发展,也越来约多的服务接口采用res
2020-11-03 22:06:11
175
原创 c#:配置Consul为window服务
环境:window 10 x64 家庭版Consul v1.8.4一、准备Consul参照:《c#:Consul初步体验》二、准备Consul配置2.1 先来看Consul的配置:conf目录下只有一个配置文件consul.json,如下:{ "datacenter": "dc1", "data_dir": "./data", "server": true, "bootstrap": true, "bootstrap_expect": 1, "ui": tru
2020-11-03 17:13:13
72
原创 c#:从Polly库看ocelot的熔断机制
环境:window 10 x64 企业版vs2019 企业版 16.7.5Polly 7.2.1Ocelot.Provider.Polly 16.0.1说明:在上一篇《c#:Ocelot熔断机制体验》,我实验了Ocelot的熔断机制,但在我试验的过程中,发现后台服务报500异常并不会被ocelot计入熔断的触发条件,这引起了我的好奇。于是,我找到Ocelot.Provider.Polly的源码以及Polly的介绍,出了这篇文章。一、Polly的介绍和功能实验Polly是一种开源的
2020-10-24 23:27:45
149
原创 c#:Ocelot熔断机制体验
环境:window10 x64 企业版vs2019 企业版 16.7.5Ocelot.Provider.Polly 16.0.1一、实验的介绍和架构图首先什么是熔断?答:网关对后台服务的一种出错保护机制,就是当后台服务屡次出错后就直接将服务关停一会。后台服务在熔断中的几个状态:后台服务处于三个状态之一:正常状态、熔断状态和半熔断状态。正常状态:这个就是服务表现良好,没有出现问题,一切ok。熔断状态:后台服务屡次超时(注意:这里是超时,不是后台服务报500),ocelo
2020-10-24 22:42:58
154
原创 c#:ocelot限流体验
环境:window10 x64 企业版vs2019 企业版 16.7.5asp.net core 3.1ocelot 16.0.1一、实验的介绍和架构图本次实验准备两个工程即可:ocelot-ratelimiting:webapi工程,引入ocelot作为网关项目,本次实验的主要项目。OderApi:正常的webapi工程架构图如下:二、准备OrderApi工程新建空白解决方案ocelot-ratelimiting,然后再新建OrderApi工程。修改OrderAp
2020-10-24 14:19:57
91
原创 .netcore入门28:asp.net core中间件创建方式
环境:window10 x64 企业版vs2019 企业版 16.7.5asp.net core 3.1说明:本篇实验asp.net core中写中间件的方式。我们知道asp.net core中的中间件会组成一个http请求拦截管道,每个http请求都是先进入管道,然后从管道出来,如下图所示:基于此,我们开始下面的实验。实验条件:我们先准备一个空的asp.net core项目,startup.cs中的ConfigureServices和Configure方法内容都留空。1.
2020-10-24 11:31:06
96
原创 c#:Ocelot集成Consul初体验
环境:window10 x64vs2019 企业版 16.7.4asp.net core 3.1consul_1.8.4_windows_amd64.zipConsul 1.6.1.1Ocelot.Provider.Consul 16.0.1关于Consul和Ocelot:Consul参照:c#:Consul初步体验Ocelot参照:c#:Ocelot初体验一、实验概述和架构图Consul是用来做服务注册和发现的,我们写的WebApi项目运行起来后需要向Consul注册服务名称和访
2020-10-22 11:23:30
126
1
原创 c#:Ocelot初体验
环境:window 10 x64vs2019 16.7.4asp.net core 3.1Ocelot 16.0.1一、Ocelot介绍和作用Ocelot是C#开发的,主要用于网关服务的,比如:转发请求、限流等,可类比Nginx。二、体验Ocelot的转发功能新建空白解决方案OcelotTrial以及三个WebApi项目如下:其中,OcelotDemo为网关项目,它开启后用来将浏览器的请求转发到GoodApi和OrderApi服务上,而GoodApi和OrderApi为正常的weba
2020-10-21 18:18:14
83
原创 c#:Consul初步体验
环境:window10 x64vs2019 16.7.4.asp.netcore 3.1consul_1.8.4_windows_amd64.zip一、下载Consul方式一:官网下载:https://www.consul.io/downloads方式二、网盘下载链接:https://pan.baidu.com/s/1p-aMgpAMZKgxlbvu0FMoUA提取码:vpge复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V3的分享二、Consul介绍
2020-10-21 17:54:47
217
原创 c#:关于Object.Equals和Object.GetHashCode
参照:优秀博文:《聊一聊C#的Equals()和GetHashCode()方法》官方文档:《Object.GetHashCode Method》看了微软官方的说明:判断对象是否相等仅依赖于Equals方法;如果判断两个对象相等,那么GetHasCode()返回值必然相等;对象Equals判定不相等的对象,他们的GetHashCode()返回值仍然可以相等(但最好不相等);GetHashCode方法会在基于Hash算法存储数据的时候用到,存取数据时先用GetHashCode找到槽位,再用Equa
2020-10-12 20:53:26
49
原创 linux下部署gitlab并进行功能测试
环境:centos8最小化安装-虚拟机xshell5winscp一、安装gitlab1.1 使用winscp新建文件/etc/yum.repos.d/gitlab-ce.repo内容如下:[gitlab-ce]name=Gitlab CE Repositorybaseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/gpgcheck=0enabled=1新建完成后,如下:1.2 更新本地
2020-09-26 16:50:44
133
原创 linux下安装rabbitmq
环境:centos8 (CentOS Linux release 8.2.2004 (Core)) 最小化安装ErLang23.0rabbitmq3.8.8xshell5winscp5.7.4参照:优秀博文:《CentOS7安装RabbitMQ》说明:rebbitmq是由erlang语言开发,所以需要先安装erlang环境,参照:《linux下安装ErLang环境》一、下载rabbitmq去github下载编译好的文件:https://github.com/rabbitmq/r
2020-09-16 18:39:14
61
原创 linux下安装ErLang环境
环境:centos8 (CentOS Linux release 8.2.2004 (Core)) 最小化安装otp_src_23.0.tar.gzxshell5winscp5.7.4参照:优秀博文: 《CentOS7安装RabbitMQ》一、下载安装包官网下载 (https://www.erlang.org/downloads/)网盘下载链接:https://pan.baidu.com/s/1o7PTq804gpma-JFPc3mX1g提取码:x696下载后如下
2020-09-16 16:27:06
592
6
原创 window下安装rabbitmq
环境:window 10 x64 专业版ErLang23.0一、准备ErLang环境因为RabbitMQ使用ErLang语言编写,所以需要先安装ErLang环境,可参考:《window下安装ErLang环境》二、下载安装包官网下载地址:https://www.rabbitmq.com/install-windows.html#installer网盘下载链接:https://pan.baidu.com/s/1oGRgoXryaPPe_MWBwN-49Q提取码:l1ki下载后
2020-09-16 10:03:54
28
原创 window下安装ErLang环境
环境:window 10 x64 专业版otp_win64_23.0.exe一. 下载安装包:官网:https://www.erlang.org/downloads网盘链接:https://pan.baidu.com/s/1b0_YZRCGb1Lxs_0SUoFZ0w提取码:a5uf下载后如下所示:二、安装ErLang点击“Close”后,打开安装目录如下:三、配置环境变量3.1 新建环境变量ERLANG_HOME指向安装目录3.2 添加%ERLAN
2020-09-16 09:36:57
63
原创 sqlserver:存储Json数据
环境:window server 2019Microsoft SQL Server 2019 (RTM) Enterprise Edition (64-bit)一、JsonSql Server 从 2016 开始支持了一些 json 操作,但在SqlServer中Json还是被存储为字符串,只不过符合JSON格式的字符串会允许一些JSON特有的操作。二、Json函数2.1 判断字符串是否符合JSON格式规范 ISJSON()ISJSON函数是按照JSON格式规范进行判断的,JSON的格
2020-09-13 16:33:41
717
原创 sqlserver:数据类型Hierarchyid的介绍和用法
环境:window10 x64 专业版SqlServer2014 x64 企业版参照:一、什么是Hierarchyid?hierarchyid 是一种长度可变的SqlServer数据类型,在SqlServer2008中被引入进来。二、为什么会有Hierarchyid?hierarchyid的出现是为了解决树状结构数据的存储问题的。设想有一个部门表t_org,我们用它来记录公司的组织架构,那么我们的表结构会怎么设计呢?一般我们会使用父/子关系基表:2.1 父/子关系建表示例creat
2020-09-11 17:22:24
165
原创 sqlserver:关于FileStream和FileTable
环境:window10专业版 x64SqlServer2014 x64 企业版.net framework4.5参照:《官网说明》《SQL Server FileStream》一、什么是FileStream?SqlServer2008引入的一种大文件存储方案。以前我们在数据库存储二进制数据的时候就是下面的两种模式:(1). 将文件存储到磁盘上,然后再表中记录下文件的路径;(2). 直接将二进制数据存储到列中;现在,SqlServer2008给我们带来了第三种存储方案,它就
2020-09-08 11:04:26
107
原创 postgresql:linux下通过源码安装postgresql
环境:centos8最小化安装postgresql12.4winscpxshell参考:《官网安装说明》《Linux环境安装PostgreSQL-10.1》一、准备安装包:可以从官网下载:也可以从网盘下载:链接:https://pan.baidu.com/s/1WVGdUJOL9BXwUcjjBWrYZQ提取码:qy79下载完成后:二、安装过程2.1 上传并解压安装包到linux的/usr/local目录通过winscp将postgresql安装包上传到linux的/
2020-08-30 17:44:16
129
原创 mysql元数据:表约束、表索引和表触发器
环境:window10 x64专业版mysql8.0.21以压缩包的方式安装mysql到window10中参考:《window下安装压缩版的mysql8》一、表约束说明:可以认为mysql中的约束有六种(主要是类比sqlserver),但mysql的元数据中仅记录了四种约束:主键约束、唯一约束、外键约束、检查约束,另外两个约束“默认约束”“非空约束”是作为列的属性存在的。创建约束:DROP table if EXISTS class;create table class( id
2020-08-24 17:53:03
63
原创 mysql:导入导出数据
环境:window10 x64专业版mysql8.0.21以压缩包的方式安装mysql到window10中参考:window下安装压缩版的mysql8说明:navicat中有两种导出数据的方法:“转储SQL文件”/导入导出向导,这里讲的内容对应navicat中的导入导出向导一般我们导出数据使用转储sql的方法生成建表和insert语句就可以了。一、导出数据-- 准备表格数据drop table if EXISTS test;create table test( id int
2020-08-23 13:00:03
67
使用maven管理多模块项目并启动调试-实例代码
2019-02-18
emptydemo.zip
2020-02-16
实例_aspnetcore集成Swagger并自定义登录登出功能.zip
2020-04-10
c#:grpc初体验,实例代码
2020-11-05
c#:Ocelot熔断机制体验
2020-10-24
asp.net core中间件创建方式实例
2020-10-24
c#:Ocelot集成Consul初体验
2020-10-22
UDP协议二进制实例分析
2015-09-12
maven插件制作示例代码
2019-02-16
微信语音amr转换mp3实例代码
2018-04-18
js调用本地摄像头.zip
2019-06-27
.netcore入门4:Microsoft.EntityFrameworkCore操作笔记
2019-09-12
aspose操作pdf实例代码:.netcore
2019-11-14
spring装配bean实例代码
2019-07-23
aspose操作word实例:.net core
2019-11-14
spring配置和启动方式
2019-07-23
aspnetcore-web-demos.zip
2020-02-28
C语言模块化编程实验代码
2018-11-22
jackletter的留言板
发表于 2020-01-02 最后回复 2020-01-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝