自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 dev中CheckedComboBoxEdit赋值与取值

dev中CheckedComboBoxEdit赋值与取值

2023-03-04 17:48:54 1341

原创 c#提取字符串所有数值(包括小数)

正则表达式提取数值(包括小数)

2023-02-28 18:21:03 2001

原创 c#导出Excel报异常-不是合法的 OleAut 日期

异常处理

2023-02-16 13:45:10 807

原创 Flutter插件shared_preferences数据存储的使用

一、概述  开发中会遇到需要应用关闭之后重新打开时,某些内容还是会存在,例如登录一个APP,然后关闭再打开,重新打开的APP希望还是登录的,不是每次都要重新登录,这个就需要用到数据存储了。  Android 使用 Sharedpreferences 来实现对于轻量级数据的缓存 , IOS端 使用 NSUserDefaults 来实现轻量级数据的缓存,Flutter中shared_preferences可同时满足两者需求。二、准备1.添加依赖  在pubspec.yaml文件下添加dependen

2021-11-05 16:59:05 1793 1

原创 Flutter保存文件到本地

一、概述  遇到需求是将配置保存到本地,除了数据存储shared_preferences外最合适的就是创建一个文件来保存数据,这样不用担心数据丢失。二、准备  首先需要添加 path_provider 这个第三方插件库,这个插件是用来获取目录的,该插件为我们提供了多种获取不同类型目录的方法。1.添加依赖  在pubspec.yaml文件下添加dependencies: path_provider: ^2.0.2  使用的时候添加引用即可import 'package:path_prov

2021-11-05 16:13:00 9147

原创 Flutter的安装与配置

一、概述  Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建可运行在 iOS 、Android、Mac、Windows等平台精美应用。开发者通过 Dart语言开发 App。  Flutter虽然强大,但是实际开发中还是能发现与正常的开发有很大的区别,原本页面、逻辑分不同文件类型存储,而Flutter一个dart解决所有,具体情况开发过程中可以体现出来。二、准备工作1.下载所需版本的flutter1.1 可以通过后面的网址选择对应版本下载(网址)  请选择稳

2021-11-04 16:35:07 246

原创 visual studio2019添加DevExpress

  最近在新机上使用DevExpress21,但是忘了如何将之引用到vs中,所以在此记录以便查找。第一步:找到所安装的Dev目录(D:\Program Files\DevExpress 21.2\Components\Tools),然后在命令行界面(cmd)中打开对应路径:第二步:执行ToolboxCreator.exe/ini:toolboxcreator.ini第三步:等待运行结束,重新打开visual studio即可。  如果想要移除,替换第二步的命令为ToolboxCreator.exe

2021-11-04 15:15:36 6001

原创 Lombok的使用

一、Lombok简介  能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,提高了一定的开发效率让代码变得简洁,不用过多的去关注相应的方法,属性做修改时,也简化了维护为这些属性所生成的getter/setter方法等。二、使用注意点  随着Java的发展,Lombok这个开源项目不会实时更新跟进,Java14中提供了Record特性,通过继承这个Record实现了以往需要Lombok创建构造的效果。不过所创建的项目还是Java8,那么Lo

2021-08-03 14:41:50 76

原创 idea中文件中文乱码

情形  有时会遇到打开某个文件中某些注释、字符串乱码了。这是因为在idea中文件并非是utf-8形式存储,需要进行修改方法  在idea的settings中搜索到File Encodings,将里面Default encoding for properties files改为utf-8形式存储就可以...

2021-08-03 11:33:56 184

原创 Visual Studio2019添加注释模板

背景团队开发需要明确创建、修改内容,为了方便开发备注是不可缺少的。第一步通过如下路径找到Class.cs,路径:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\ItemTemplates\CSharp\Code\2052\Class ,其他版本的类似,基本都是找到Class.cs这个文件进行编辑。第二步写下备注信息,如下参考:using System;using System.Collectio

2021-08-03 09:20:03 2180

原创 IDEA创建类时添加注释并自定义描述信息

1.首先打开下面的内容File–>Setting–>Editor–>File and Code Templates–>Includes–>File Header如图所示:2.输入内容/**@program:${PROJECT_NAME}*@author: xxx*@Time: ${DATE} ${TIME} *@description: ${description}*/建议为了美观,上下留行3.结果...

2021-08-03 09:11:38 1159

原创 利用NPOI将DataTable导出到Excel其单元格自适应

测试暂未编写

2021-06-24 18:29:19 211

原创 SQL对date类型的操作

  对date类型进行更新操作:update table_date set time=to_date('2021-06-08 08:07:07','YYYY-MM-DD HH24:MI:SS') where id='1'  查询的日期需要字符串的形式存在:select to_char(time,'YYYY-MM-DD HH24:MI:SS') time from table_date...

2021-06-08 16:44:28 1266

原创 c#传入的日期对比

一、两个日期相差的月数  对比两个日期并返回相差的月数(正数),这里将对应的方法列出,使用直接传入两个日期。public static int LessMonth(String time1, String time2){ int res = 0; DateTime d1 = new DateTime(); d1 = DateTime.Parse(time1); DateTime d2 = new DateTime(); d2 = DateTime.Parse

2021-06-08 16:36:14 860

原创 c#中DataTable的拷贝复制

一、背景  有时需要对DataTable进行数据变更操作,但是需要保存原本的DataTable作为参考可返回的,因此需要拷贝DataTable生成新的对象。二、实现  原本是想用for循环将原DataTable的值用Add的方法添加到新DataTable中,实际操作中发现使用此方法提示对应的datarow属于原DataTable而不属于新DataTable。至此需要新的来操作。  这里需要注意的是Copy()和Clone()两个方法,这两个方法实现的效果是不一样的。首先是Copy(),该方法是拷贝对

2021-06-08 16:01:14 8825

原创 dev中对DateEdit进行格式设置

一、背景  不对DateEdit进行设置,那么这个控件编写可以为日期的各种类型,但为了统一和后面查询的便捷还是需要进行限制的。二、实现  设置控件可以在对应的属性中找到对应的内容进行设置,但是这个控件时一个比较常用的方法,因此单独做出一个方法比单独一个个设置更有意义。相关代码如下所示:public static void setFormat(DateEdit date){ date.Properties.DisplayFormat.FormatString = "yyyy-MM-dd";

2021-06-08 15:02:24 975

原创 c#判断是否为整数或者数值

一、背景  有时需要判断输入的值,但又不想限制输入,因此多了检测的步骤。这里列举的是判断输入的内容是否是整数或者其它小数的数值.三、实现1.判断整数1.1 使用int.TryParse()方法  利用int类型自带的TryParse(string, ou int) 方法可以解决问题,此方法通过对应的输入内容string,如果是整数则返回int,不是则判断为false。具体代码如下:String a = "123";String b = "12.3";String c = "abc";Str

2021-06-08 14:23:13 18345

原创 c#中List排序

一、背景  有时用户需要按某项排序,但是查询结果以List格式存储,我们当然可以自己编写一个快速排序的方法进行排序,但是还有多个选择,并且可能比你写的短、效率也不差,那不如在恰当的时候选择其他方法对List进行排序二、方法  第一种: List的OrderBy与OrderByDescending方法  个人认为如果只是简单的进行排序,并且并不想影响实体类的话,这个方法是最有效的,只需一句话便可解决排序问题。其中OrderBy是升序操作、OrderByDescending是降序操作。然后在其中使用la

2021-05-19 15:00:29 13446 1

原创 c#中DataTable的排序

一、背景  从数据库中查找的数据没有进行排序操作,在某些场合又需要排序操作,但不可能浪费资源重新从数据库中进行查找,最方便的就是直接在代码上写上,这样俩不误。二、操作  第一种:利用视图排序  此方法最为简单,如果就是根据某一列进行排序,使用这个方法最简单也最美观,该方法默认以升序进行排序,如果想要降序需要和SQL类型添加desc,下面的代码就是这个例子。相关的示例代码如下:public void test(){ DataTable dt = new DataTable(); d

2021-05-19 11:40:19 10380 1

原创 System.Data.OracleClient.OracleException:“OCI-22053: 溢出错误

  在数据库中查询语句执行成功,但是到了代码运行时就查不出数据,后调试发现出现异常,通过介绍明白是数据库中查询结果数值中存在大量小数造成的。  在代码中是从数据库中获取数据赋值到实体中出现的错误,这说明执行查询是没有问题,所以一个方法是在SQL中限制数值的位数,还有一个是代码使用补丁,不过比较方便的还是SQL中添加限制,直接使用 round(xxx, 保留的位数) 即可,例如:select round(num1/num2, 2) from table_num ,该SQL是保留两位小数,经过处理成功执行。

2021-05-14 09:14:55 594

原创 SQL中获取几列中的最大值

场景如图所示(要获取其中的最大值):

2021-04-30 16:57:19 5673

原创 c#出现System.Data.OracleClient.OracleException:“ORA-00911: 无效字符

  在编写事务控制时发现无法调试到运行SQL语句那一步,并且报出System.Data.OracleClient.OracleException:“ORA-00911: 无效字符 的错误,通过提示可以判断是编写的程序中有不符合的字符出现,这是对数据库的操作,所以首先查看SQL语句能否在数据库中执行,通过测试是可以执行的,而其他调试内容中编写事务的开始、提交、回滚是没有问题的,经过查找最终在SQL中发现末尾多了个 ; 在数据库中执行是没有问题,但是这c#运行时还是不行,删了就好了。...

2021-04-30 14:53:50 1160 1

原创 GridView中查询结果为空添加提示

一、背景  查询完结果后显示到界面上,但是有些时候点击查询但是没有查询结果,自己一个回头就忘了,不知道到底有没有查找,这个添加提示感觉还是挺人性的。二、解决方法  首先需要在GridView的方法中找到CustomDrawEmptyForegound 随后就是实现这个方法了,具体代码如下所示:private void gridView_CustomDrawEmptyForegound(object sender, DevExpress.XtraGrid.Views.Base.CustomDrawEv

2021-04-28 16:31:09 236

原创 c#中转换出现格式异常

一、背景  在使用Convert.ToDecimal(obj)转换DataRow中某一个值出现格式异常,查看发现是有DBNull.Value的,之前不做判断是因为Convert.ToDecimal(obj)中obj为空还是返回0,但是后来调试发现DBNull.Value是一个特殊对象,不是一个null值,所以需要特别判断一下。二、方法  个人喜欢一句话解决问题,时不时的if判断容易让人看的头疼,这里个人优先采用三目运算,毕竟一个简单的判断不需要太多篇幅。代码如下Decimal de = Conver

2021-04-28 16:17:40 500

原创 GridView某行某列(单元格)根据某条件标色

一、背景  在开发中经常会遇到有需求根据某列上某些内容符合某些条件,在该行的某列(可以为自身,可以是所在行的某列)设置背景色以突出显示。网上查找的大多是判断某行某列然后直接在上面标注颜色,这里需要在其他地方标注,写下来以备后来人借鉴。二、实现方法  在GridView的方法中有一个叫做CustomDrawCell,该方法是数据已绑定,而页面还在绘制过程中的方法,利用此方法可以根据内容在对应的单元格上标注颜色。详细代码如下:private void gvCwzl_CustomDrawCell(obje

2021-03-30 16:51:06 889

原创 c#的DataTable的分组操作

一、背景  有的时候遇到需要合并相同编码的某一项的值,也有些时候需要统计人员来进行某些事务操作。当然这个可以通过SQL语句解决,但不是每家的SQL服务器都是十分厉害的,遇到数据多,访问量多的情况,原本可以很快出结果的也会有可能卡在等待页面上,迟迟不见结果。二、操作  他的操作与SQL十分类似,这与c#的一个特性有关,那就是LINQ(Language Integrated Query,语言集成查询),是c#3的核心。通过LINQ可以帮我们简化大量的代码,对于想要写出简洁干净有效的代码的人而言,这就是一件

2021-03-24 10:50:28 2068

原创 c#判断内容是否可以转为数值或数字格式的方法

一、背景  在从Excel中获取内容时,经常遇到数字类型的数据,当我们想要将这些数字格式的数据转放到实体类中时,如果不考虑判断直接使用xxx.Parse()或者Convert.Toxxx()当遇到某些数据格式不正确的时候会报数据格式异常的错误提醒。为了让程序更好的运行,有更高的容错性,需要对数据先有个判断。二、使用的方法  在网上寻找相关解决方法时,有些人喜欢使用正则表达式来处理。不过对于单纯的数字而言,表达式还是比较简单好使的,但是涉及到小数点的时候,需要分情况来进行编写程序判断。对于喜欢简化的人来

2021-03-16 08:54:51 1400

原创 c#编写判断Windows电脑有没有安装某个应用程序

一、背景  这里需要调用电脑中的某个程序,但是这不是电脑默认安装的程序,所以在调用的时候需要先判断电脑中有没有安装这个程序。经过查找资料,目前采用的思路是通过注册表来查找有无这个程序。二、示例  这里只需要从注册表中的LocalMachine和Users两大表中的对应位置中就可以找到电脑所有安装的程序,其示例图片如下所示:  首先是打开注册表,需要在搜索框中输入regedit即可出现注册表,如下图所示:  其次,在注册表中如下图圈出的两个位置中查找程序即可全部解决。(具体位置可以看后面的代码)

2021-03-09 10:13:10 2147

原创 dev中BandedGridView初次使用体验

一、背景  在绘制表格时有需求是在上面添加两行用于放标题和备注,并且还要求可以将他们与表格一起导出到Excel中,综合情况选择bandedGridView来实现。二、初次使用情况  在MainView中设置属性,一开始在Options中的OptionsView下设置ColumnAutoWidth=False,RowAutoHeight=True。但是实际运行的结果并不如人意,在运行时会发现在不同的屏幕下,这个显示效果会及其不一样,可能在小屏幕上还是可以的,但在大屏幕上这个宽就无法保证了。为了实现自动宽

2021-02-03 08:40:23 582

原创 c#强制转换Convert和Parse的相关内容

一、背景  通常格式转换时直接使用Parse功能,但这只能转换String类型的数据,后来搜集资料发现c#中还有Convert方法,我对这两者产生了兴趣,接下来便对这两个进行简单的介绍。  首先我对这两个的感受有点像买手机,一个是正常版本的手机,一个是手机版本+Pro,当然Parse是正常版本的,Convert更像是Pro类型的。两者功能及其相似,但是总体使用来看Convert似乎比Parse更加适用于各种场景,但是两者之间的区别也让某些场景中更适合用Parse(就像我买手机没钱,那就买正常版本的手机,

2021-01-15 14:00:06 326

原创 GridView或者bandGridView使用repository的控件取值问题

一. 背景  在编写时使用了repositoryItemTextEdit和repositoryItemComboBox这两个控件,在使用控件时需要对他们所填或者所选的内容进行操作,通常c#中就是一句简单的xx.Text(0便可解决,但是在实际断点查找是并没有找到相应的内容,这对开发造成了影响,为了以后的开发,这里便写写对应的方法。二、针对控件的方法  我们在使用Repository Item不的控件(如TestEdit、ComboBox),在确定其修改值之前(回车或者转移焦点),“内置”控件的值是不会

2021-01-15 10:01:30 291

原创 c#中字符串的比较方法-详解

背景想想c#对==的重写,平时写代码时遇到字符串的比较直接使用==,但回头看这么写容易引起误会,为了能够更好的编写出好看的代码,这里先系统的举出c#中常见的比较方法。1.Equals()在对字符串比较中==与Equals()的普通用法相同(详细内容可见之前写的c#中Equals()与==的比较),Equals()的作用与优化比我们想象的要好的的多,话不多说,先上代码,然后再谈谈细节。string s1 = "Hello";string s2 = "Hello";string s3 = "hell

2020-12-16 10:01:39 6251

原创 c#中Equals()与==的比较

背景平常写代码时,遇到两个String类型比较,在c#中直接使用==,但是回头想一想同样是面向对象的Java中==比较是对象在内存中的首地址,没理由c#会如此独特,为了了解c#的Equals()与==,写下这份笔记以提醒自己。1.Equals()与==的相同之处首先这里比较两个字符串,看看他们的结果是什么string s1 = "Hello";string s2 = "Hello";string s3 = "hello";s1.Equals(s2)// 结果为:trues1.Equals(s

2020-12-15 16:54:53 1616 1

原创 Java中会使用到的字符串比较

1.equals()首先想到的就是equals(),正常以s1.equals(s2)的格式比较s1与s2两者的内容,结果类型为布尔值。一开始接触到的会与 == 混淆,s1==s2 通常比较两个对象在内存中的首地址,如果相同则为相同对象,不同则代表指向不同的对象。String s1 = "Hello";String s2 = "Hello";String s3 = "hello";s1.equals(s2);//结果为trues1.equals(s3);//结果为falses1 == s2 //

2020-12-15 15:06:34 96

原创 string.Join()与StringBuilder的详解

string.Join()string.Join(string1, string[])通常被用来拼接字符串,其中string1表示要拼接在字符串中间的字符,而string[]是要拼接的字符串。例如://GetArrayValues返回的是一个list,list.ToArray()返回的是string[]string productId = string.Join("','", GetArrayValues(fromIndex, toIndex, ids).ToArray());//返回的结果像:11

2020-11-13 08:09:22 1677

原创 c#中{}中内容的输出

函数中{}输出格式在查看资料时发现输出的内容是可以根据自己的需求转化为对应的格式,为了充分了解这一函数从网上此资料中进行了解(关于{}输出内容的博客)。格式:{index [,alignment] [:formatString]}​ 其中"index"指索引占位符,这个肯定都知道;​ “,alignment"按字面意思显然是对齐方式,以”,"为标记;​ “:formatString"就是对输出格式的限定,以”:"为标记。例如:Console.WriteLine("{0:C}",

2020-11-12 10:55:36 542 1

原创 模糊查询(like、instr)

SQL中经常会遇到模糊查询,现在模糊查询正常、最常用的有两种,一种是like、另一种是instr,这两种单单是简单的搜索,instr的效率是比like要高的(这也得看%在哪儿了)。likelike中分右模糊、左模糊,右模糊比如’abc%‘时,扫描索引,高效。当模糊查询含左模糊时,比如’%abc’,进行全表扫描,低效。当然更别提’%abc%'了。instrinstr(字段名, string),instr的使用也很简单,就是填写一下字段名,然后与后面需要查找的内容相关。这个比like的左模糊效率

2020-11-12 10:42:00 7009

原创 case函数详解

case函数通常也被称为:流程控制函数主要有两种形式简单case函数通常用于情况不多且可枚举出来的情况通常形式如下:CASE <col_name> WHEN <value1> THEN <result1> WHEN <value2> THEN <result2> ... ELSE <result>END 例如:CASE sex WHEN '0' THEN '男' WHEN

2020-11-12 10:37:20 12507 1

原创 SQL中nvl函数

nvl(表达式A, 表达式B)如果表达式A为空值,NVL返回值为表达式B的值,否则返回表达式A的值。该函数的目的是把一个空值(null)转换成一个实际的值。其表达式的值可以是数字型、字符型和日期型。但是表达式A和表达式B的数据类型必须为同一个类型。例:nvl(clue_num,0):如果clue_num为空,则返回0;否则返回clue_num的值nvl2(表达式A,表达式B,表达式C)如果表达式A为空,则返回表达式C的值;如果表达式A不为空,则返回表达式B的值。例:nvl2(sex,0.

2020-11-12 10:34:19 540

原创 去除字符(例如常见的空格)

这里提供了三种不同的去字符的ltrim()用法一: ltrim(string),直接在其中输入字符串,默认去除左边的空格用法二: ltrim(string1, string2),string1表示原字符串,string2表示要去除的内容,例如以下select ltrim('111222333', '1')--222333rtrim()用法一: rtrim(string),直接输入字符串,默认去除右边的空格用法二: rtrim(string1, string2),string1表示原

2020-11-12 10:29:55 276

空空如也

空空如也

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

TA关注的人

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