
C#
雨欲语
说再见就是一点一点死去
展开
-
JSON与C#的DataTable互转
需要引入JsonConvert。 1、DataTable转换为Json:JsonConvert.SerializeObject(dataTable); 2、Json转换为DataTable 网上很多博主都是利用正则什么各种解析,实际上不用,一句代码的事:DataTable dt = (DataTable)JsonConvert.DeserializeObject(json, (typeof(DataTable)));...原创 2020-12-08 16:08:15 · 1392 阅读 · 0 评论 -
C#winform程序中控件等比例缩放(主要针对主程序加载子程序)
这里的等比例适用的是在主窗体中加载了多个子窗体,或者一个主程序引用了另外一个子程序dll这样等比例缩放,也并不是实际意义上的等比例,而是相当于重新加载子窗体,但子窗体里面的数据不能变化。 主窗体和子窗体加载这种就不介绍,直接介绍主程序加载子程序的dll这种,主窗体与子窗体与其类似。 先建立一个主程序,主程序就当做一个壳,里面简单放几个容器即可。再建立一个子程序,子程序可以随便加点窗口进去,主要是为了让主程序调用加载进主程序。为了实现所谓的等比例缩放,子窗体...原创 2020-12-01 15:03:54 · 2168 阅读 · 1 评论 -
使用C#进行SqlServer的批量插入
1原创 2020-04-15 19:27:54 · 1430 阅读 · 0 评论 -
C#使用SMO库自动建sqlserver的表
利用SMO自动建表,需要添加很多引用,比如ConnectionInfo、Management.Sdk.Sfc、SqlEnum等,可以直接在Nuget中查找SMO,然后找到一个Unofficial.Microsoft.SQLServer.SMO.2014,由Nils Luck提供的即可,这个已经包含了此次我们需要的所用引用: 我们这里完全实现根据信息来自动建表...原创 2020-04-14 21:29:39 · 1194 阅读 · 0 评论 -
使用NPOI操作Excel后,打开Excel后提示“发现不可读取的内容”
使用NPOI导出Excel后,打开Excel总会提示“发现不可读取的内容”,通过注释相关代码后,发现是在设置Excel单元格的字体时导致的。 在我的代码中有一段设置字体为“宋体”:Font.FontName = "宋体",当将其注释后,再导出Excel打开便没有了之前的错误提示。我猜测应该是打开不支持设置中文的字体,即像宋体、黑体这样的中文或者是由于本身电脑的原因...原创 2020-03-21 18:32:27 · 3815 阅读 · 0 评论 -
使用C#发送邮件
使用C#进行邮件发送,需要使用到的库为:System.Net.Mail。 代码如下:public static void Main(string[] args) { MailMessage mailMessage = new MailMessage(); //发送给谁 mailMessage.To.Add("dengyifanlittl...原创 2020-01-31 22:18:03 · 1317 阅读 · 0 评论 -
Winform中的dataGridView的某一个单元格添加下拉框(comboBox)
最近一个需求,需要实现在dataGridView的单元格中放入下拉框进行选择,即放入comboBox控件,整体的思路很简单,comboBox通过代码进行初始化。在点击某个单元格的时候,触发单元格的事件,然后显示下拉框,当选择了数据之后,赢藏comboBox,并将选择的数据绑定到单元格对应的位置即可。 首先建立一个Winform程序,拖入dataGridView控...原创 2019-12-23 00:11:26 · 7635 阅读 · 3 评论 -
C#Winform程序的dataGridView让某行不参与排序
最近在做一个需求的时候,需要在dataGridView的最后两行添加一个平均值、总计的行,这两行不能参与排序的。现在的dataGridView其实默认最后一行不参加排序的,但是现在我是最后两行不参与排序,因此需要自己动手解决。类似的,以下解决方案可以让任意一行不参与排序。 首先建立一个winform程序,放入控件dataGridView,然后建立四个列,这里需要将...原创 2019-12-12 21:54:02 · 2196 阅读 · 1 评论 -
C#中使用ECharts——Winform程序静态页面
ECharts不做过多介绍,只需要知道其是一个特别好用的数据处理的图形界面的js就行。 这里讲一下在C#中使用ECharts的方法,首先建立一个Winform程序,在窗口中添加一个WebBrowser控件,此控件主要用来加载后期的html文件。界面如下: 接着导入需要的第三方插件,即ECharts,通过NuGet查找,之后安装到项目中,也可以...原创 2019-10-19 00:19:21 · 8192 阅读 · 7 评论 -
Quartz.net动态修改触发时间
在使用Quartz进行定时任务调度的时候,难免会遇到根据业务需求来修改我们的触发时间,而且是进行动态的修改,接下来我介绍一下Quartz.net怎么动态来修改触发时间,Java中的Quartz也是差不多的原理。这个demo是基于上一次动态暂停、恢复任务的基础上做的,可以查看链接:https://blog.youkuaiyun.com/qq_41061437/article/details/10...原创 2019-09-21 01:25:31 · 1967 阅读 · 0 评论 -
Quartz.net的使用——显示任务信息、暂停、恢复、显示下次触发时间、禁止并发运行
最近在使用Quartz.net开发项目的时候,因为业务需求,我需要在页面进行任务的管理,比如暂停、恢复、显示下次执行时间等。网上关于C#中的Quartz的信息很少,因此我很多是通过查找Java的API完成的,如果大家需要其它需求,也可以直接查找Java中Quartz怎么使用的就行。 这里我使用的是基于配置文件的方式进行的,对于Quartz.net不熟悉的可以看我的...原创 2019-09-19 23:47:54 · 6321 阅读 · 7 评论 -
C#框架NHibernate的学习
今天对C#中的框架NHibernate进行了一番学习,与Java中的Hibernate十分类似。 我这里只介绍一下简单的使用,通过数据库进行语句的查询,然后把数据显示在界面上。 首先是将NHibernate的包导入项目中,在Java中有Maven来解决,在c#中通过Visual studio的NuGet可以解决,点击工具—>NuGet包管理...原创 2019-09-05 23:43:21 · 1321 阅读 · 0 评论 -
Quartz.net通过配置文件建立job和trigger
在上一篇文章当中,我简单的介绍了直接在代码中进行作业和触发器的建立,Quartz的强大之处在于其的配置文件,所以,这一篇博客主要讲怎么通过配置文件来建立作业和触发器。 首先我们创建作业调度器和和启动调度器:static void Main(string[] args){ // 创建作业调度器 ISchedulerFactory chedul...原创 2019-09-04 14:59:08 · 1398 阅读 · 0 评论 -
Quartz.net快速入门
之前在使用Java的时候,写过Quartz的博客,原文链接:https://blog.youkuaiyun.com/qq_41061437/article/category/8523862,现在做.net开发的时候,有个任务需要做定时调度作业,于是想到了Quartz,于是搜索了一番,发现Quartz还真迁移到了.net中,至此,我发现Java中很多优秀的框架或者组件都有迁移到.net中。虽然...原创 2019-09-04 13:32:12 · 1016 阅读 · 0 评论 -
“object”未包含“get_Range”的定义以及HRESULT: 0x800A03EC
最近在将数据库里面的数据导入到Excel时遇到一个问题,刚开始问题是:“object”未包含“get_Range”的定义,后来通过查询解决后,又出现了HRESULT: 0x800A03EC,下面说一下这两个bug怎么解决。 首先看一下我将数据库数据存储到Excle的代码片段:Excel._Application execleApplication = new...原创 2019-08-29 13:12:25 · 2003 阅读 · 0 评论 -
GC的初步接触——不能够使用已释放的对象
最近在进行项目开发的时候,有个地方需要弹出等待提示框,然后因为涉及只能让其是一个对象的,所以使用到了单例模式,在我的博客里面有详细介绍:https://blog.youkuaiyun.com/qq_41061437/article/details/99838057。在之后另外一个弹框提示中,我发现了一些问题,然后这个问题牵扯出了C#中的GC,深入的自己还在研究中,这里先讲述一些初步接触。...原创 2019-08-28 16:15:40 · 831 阅读 · 0 评论 -
C#开发琐碎事件记录——控件属性、事件、方法(长期更新)
本文为自己开发中通过网络查找或者自己研究的一些琐碎事件的记录,包含控件、控件的属性使用、控件的事件使用、控件的一些方法的使用。 1、设置窗体大小不可改变:找到属性FormBordeStyle,设置为FixedSingle,此时无法通过拖动鼠标改变窗体大小; 2、设置窗体无法最大化:找到属性MaximizeBox,设置为False,此时最大化窗体控...原创 2019-08-21 11:24:03 · 1449 阅读 · 0 评论 -
C#开发快捷键记录——Visual studio 2017(长期更新)
本文为自己开发中通过网络查找或者自己研究的一些常用快捷键的记录。 1、快速生成get and set 方法:选中属性,Ctrl + R、Ctrl + E; 2、代码格式化快捷键:Ctrl + K、Ctrl +D; 3、快速找到TODO,即任务列表:Ctrl + W、 Ctrl + T; 4、显示测试控制台:Ct...原创 2019-08-21 10:10:37 · 885 阅读 · 0 评论 -
单例模式——Java代码实现,C#实际使用展现(创建型)
在设计模式中,单例模式可以说是最简单的一种了,主要作用是让一个类自己进行对象的创建,而且保证了只有一个对象被创建,适用于那种全局的对象。就相当于创建对象的时候不用再进行new操作了,当然,排除使用一些框架帮我们创建对象时也不使用new。 下面直接说一下几种单例模式。 懒汉式线程不安全单例: 所谓懒汉,就是指当调用的时候才去进行对...原创 2019-08-20 14:23:03 · 793 阅读 · 0 评论 -
C#使用log4net进行多日志文件的配置以及自定义路径的配置文件读取
在使用log4net的时候,编写的配置文件,有时候我们可能需要放在其它路径下面,而是不是用默认的App.config,这时候,只需要在AssemblyInfo.cs里面添加一行代码即可:[assembly: log4net.Config.XmlConfigurator(ConfigFile = "xxx.config",Watch = true)] 上一篇博...原创 2019-08-02 18:19:52 · 4816 阅读 · 2 评论 -
C#使用log4net进行日志记录
今天在使用C#进行一个小模块开发的时候,有个需求是需要进行日志记录,日志记录挺熟悉的,Java中常用的就是log4j进行日志记录,但是在C#中,我一点也不了解,于是通过查阅资料等,进行了在C#中进行日志记录。 C#中进行日志大多选择的是log4net进行的,下面直接说使用方法。 首先下载log4net包,步骤:工具—>NuGet包管理器—&...原创 2019-07-31 19:18:48 · 1642 阅读 · 0 评论 -
Visual Studio 2017用C#进行单元测试
单元测试一项很重要的工具或者说是方法,此次在学习使用C#的过程中,单元测试肯定少不了的,但由于之前只学过Java的单元测试,这次在尝试C#进行单元测试时,遇见不少的问题,就此记录一下C#的单元测试方式。 首先编写被测试的代码:namespace test1{ public class Program { static void Main(string...原创 2019-07-30 19:25:36 · 1651 阅读 · 1 评论 -
观察者模式(结合C#委托和事件)(行为型)
观察者模式网上解释得有很多,通常这样解释:观察者模式(有时又被称为模型(Model)-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。 其实最常见的用...原创 2019-07-26 14:48:41 · 753 阅读 · 0 评论 -
C#学习(五)——SqlClient连接Sql Server数据库,读取配置文件并创建数据库连接池
本文部分参考链接:https://www.cnblogs.com/eaglet/archive/2011/10/31/2230197.html C#中连接数据库有很多种方法,这里介绍一下SqlClient连接数据库,用来连接Sql Server数据库。 这里通过配置文件来获取配置信息,在项目中右键,选择添加,然后选择新建项,再选择应用程序配置文件...原创 2019-07-24 10:32:32 · 2149 阅读 · 0 评论 -
C#学习(四)——自动转换、重载运算符
自定义转换:为自己的结构或者类定义显式和隐式转换。 隐式转换语法:public static implicit operator Dog(Cat cat)//本质上是实现一个静态的方法,隐式转换关键字使用implicit,使用operator关键字标明这是一种转换操作,这里的Dog本质上是函数名,但实际上并不是函数名,实际上是返回的类型{ ...} ...原创 2019-07-17 13:56:38 · 787 阅读 · 0 评论 -
C#学习(三)——密闭类、接口
密闭类:有些类不希望其他人通过继承来修改。 如果一个基类方法不希望子类对其重写,就可以不声明为virtual。如果是某个派生类方法不希望子类对其重写,同时时override重写,就可以使用sealed机制。 密闭方法:不希望其他人重写该方法。 利用上一篇博客中的实例来进行演示:using System;using System.Collecti...原创 2019-07-17 13:30:35 · 739 阅读 · 0 评论 -
C#学习(二)——构造函数、隐藏方法、虚方法
C#也是面向对象编程的语言,也包含继承、封装、多态。 C#中的继承语法结构如下:class ChildClass:ParentClass{ ...} C#中Object类是所有类的共同基类;单继承。 编写一个继承demo:using System;using System.Collections.Generic;using ...原创 2019-07-17 11:07:18 · 1047 阅读 · 0 评论 -
C#学习(一)——Hello World程序以及C#一些基础知识
今天开始学习C#,从一个Hello World程序开始,代码如下:using System;//using导入命名空间,即导入包using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace MyApp1//命名空...原创 2019-07-16 20:02:40 · 742 阅读 · 0 评论