自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(127)
  • 论坛 (8)
  • 收藏
  • 关注

原创 NPOI遇到的问题Unexpected ptg class (ArrayPtg)

Unexpected ptg class (ArrayPtg)NPOI遇到的问题: 遇到解析不了的公式了

2020-11-01 17:42:21 29

原创 使用Include扩展方法来使用EntityFramework贪婪加载

使用DbSet<T>类的扩展方法(位于EntityFramework程序集的System.Data.Entity命名空间,所以别忘了添加using System.Data.Entity),可以使用EntityFramework的贪婪加载。比如有主表ATable,子表BTable,在加载A表中记录(对象)的时候同时加载子表B中的记录(对象),则:context.ATables.Include(a=>a.具体的导航集合属性).where(...);比如有主表ATable,子表...

2020-10-24 07:59:24 26

原创 MYSQl端口号修改、公开端口号

(一)修改MySql端口【可以不改的,就使用默认端口号3306,如果不改的话,则跳过这一步】直接在my.ini配置文件(默认在c:\ ProgramData\MySQL\MySQL Server 5.7文件夹下),将port的值改为需要的端口号。【切记】修改之前,备份一下。如果修改失败,可以把备份的重新拿过来修改.操作是,有可能会遇到过在windows server上修改my.ini,修改后,重新服务器时,始终无法重新启动。提示就是请键入 NET HELPMSG 3523以获得更多的帮助。该

2020-10-16 23:16:29 22

原创 使用System.Component.DataAnnotations命名空间下的Validator类和ValidationContext及一系列特性对数据有效型进行验证

对于具体的某个类,其成员可以添加使用System.Component.DataAnnotations命名空间下一系列特性(如RequiredAttribute,MaxLengthAttribute,StringLengthAttribute,RangeAttribute等等),然后通过该命名空间下的ValiationContext和Validator类来对其进行验证,验证结果返回bool值,并将详细验证结果保存在List<ValidationResult>集合中。Validatio.

2020-10-01 23:11:44 22

原创 EntityFramework+MySql在插入数据的时候,出现代码1054的异常,提示:Unknown column ‘xxx_Id‘ in ‘field list‘

这个是由于默认情况下,外键会使用"xxx_id“的命名方式,其中xxx是外键所指向的表的名称。当不是这样的命名方式的时候(比如一对一关系的时候将本表的Id作为外键),就会出现这样的异常。解决方式:在Entity类的外键属性上,手工增加ForeignKey特性,即[ForeignKey("外键所指向的表名称")]...

2020-09-28 21:06:04 35

原创 Asp.Net 返回Json数据的方式

如果要返回Json数据,则可以使用返回HttpResponseMessage对象的方式。 public HttpResponseMessage Get(string id) { HttpResponseMessage response = new HttpResponseMessage(); string jsonStr=XXXService.Get(id); //get data by Service

2020-09-27 14:54:41 71

原创 Asp.Net WebApi中MySql+EntityFramework的配置

(一)环境配置:Connector和类库(MySql.Data.EntityFramework、MySql.Data和EntityFramework)的安装。MySQL Connector/NET的下载如下。下载后默认安装即可。MySql.Data.EntityFramework、MySql.Data和EntityFramework的安装。只需要Nuget安装MySql.Data.EntityFramework,另外两个将会被自动安装:(注意:上图中记得选择安装MySql.Data.En

2020-09-20 17:18:34 568

原创 Unity Ioc在WebApi中的配置方法:方式二(更简单方便)

步骤一:NuGet添加Unity.AspNet.WebApi的引用添加完成后,会在App_Start文件夹下自动生成两个文件,分别为UnityConfig.cs和UnityWebApiActivator.cs,其中UnityConfig用于配置依赖注入对象,UnityWebApiActivator用于通知WebApi程序启用Unity(说明:UnityWebApiActivator.cs 文件中的).步骤二:打开UnityConfig.cs文件,配置Unity信息...

2020-09-19 16:27:11 28

原创 Unity Ioc在WebApi中的配置方法:方式一

在WebApi中使用Unity IOC容器,则除了安装Nuget包之外,还需要三个步骤:(1)创建UnityContainerFactory;(2)实现IDependencyResolver接口;(3)注册IDependencyResolver的实现类。一、创建UnityContainerFactoryUnityContainerFactory作为提供容器的工厂类,需要将容器作为单例类来管理。方式一: public class UnityContainerFactory .

2020-09-17 21:21:27 26

原创 C#之LINQ中常用的ToLookup,GroupBy, Join之用法总结

一、ToLookupLookup<TKey,TElement> 类 class Student { public string Name; public double Weight; public int Age; } class Program { static void Main(string[] args) { LookupExample(

2020-09-06 18:13:45 74

原创 C#中常用的非泛型委托-AsyncCallback

委托AsyncCallback 即 delegate void System.AsyncCallback(System.IAsyncResult ar)其中IAsyncResult是表示异步操作状态的接口,由委托中的异步方法BeginInvoke返回得到,即IAsyncResult BeginInvoke(...)

2020-09-05 20:30:43 19

原创 C#中常用的几种预定义委托

在System命名空间中,定义了一些常用的委托,如Action,Func,Predicate,Comparison,Converter, EventHandler等。需要注意的是,参数带有in的,表示逆变;参数带有out的,表示协变。Action<in T> 或Action<in T1,...,in Tn> 即 delegate void System.Action<in T1,...,in Tn>(T1 arg1,...,Tn argn) //F...

2020-09-05 17:18:26 36

原创 C#中的任务并行库TPL

Paralle类的主要方法:(1)ParallelLoopResult For (int fromInclusive, int toExclusive, Action<int> body) 执行for循环,其中可能会并行运行迭代。 public static void Main() { ParallelLoopResult result = Parallel.For(0, 100, ctr => { Random rnd = new...

2020-09-04 18:45:34 39

原创 使用NPOI来操纵Office

NPOI是开源的操作office文档的库,是POI的.net版本。创建excel文档:HSSFWorkbook book=new HSSFWorkbook();HSSFSheet sheet=book.CreateSheet("Sheet1");FileStream file=new FileStream("mysheet.xls",FileMode.Create);book.Write(file);file.Close();关于NPOI的详细用法,参见NPOI使用手册..

2020-09-04 16:43:35 42

原创 C#中的IO操作之File类

File 类提供用于创建、复制、删除、移动和打开单一文件的静态方法,并协助创建FileStream对象。主要方法:在这些方法中,会返回流对象或读取(写入)器对象的方法包括:(1)返回FileStream对象:Create(),Open(), OpenRead(),OpenWrite()(2)返回StreamWriter对象 AppendText(),CreateText()(3)返回StreamReader对象 OpenText()...

2020-09-04 12:04:10 32

原创 C#流操作之五:二进制读取器BinaryReader

BinaryReader 类用特定的编码将基元数据类型读作二进制值。

2020-09-04 11:05:16 67

原创 C#流操作之四:二进制写入器BinaryWriter

BinaryWriter 类将二进制中的基元类型写入流并支持用特定的编码写入字符串。此类型实现IDisposable接口。在使用完类型后,您应直接或间接释放类型。若要直接释放类型,请在try/catch块中调用其Dispose方法。若要间接释放类型,请使用using(在 C# 中)或Using(在 Visual Basic 中)等语言构造。...

2020-09-04 10:59:56 99

原创 C#流操作之三:字符读取器TextReader

一、TextReader基类TextReader抽象类表示可读取有序字符系列的读取器。官方文档部分描述如下: string filename = @"C:\Example\existingfile.txt"; char[] result; StringBuilder builder = new StringBuilder(); using (StreamReader reader = File.OpenTe

2020-09-04 10:49:25 52

原创 c#中流操作之二:字符写入器TextWriter

除了Stream抽象类及其派生的实现类(如FileStream,MemoryStream,NetworkStream...),为了简化流的操作,.net类库中还定义了TextReader和TextWriter抽象类,分别表示读取器和写入器。(一)写入器的基类TextWriter抽象类的官方定义如下:(二)TextWriter的实现类之StreamWriter继承Object->MarshalByRefObject->TextWriter->St...

2020-09-04 10:29:10 82

原创 c#中流操作之一:Stream对象

(一)流的概述流代表源与目标之间传输的一定的数据量。无论是文件、网络还是打印机等设备,流都要提供一种通用的方式与数据进行交互。流不仅可以访问文件,还可以访问网络、内存地址等。可以看到,FileStream和MemoryStream都是直接继承于Stream抽象类。流继承于 System.IO.Stream抽象类,Stream的常用成员包括:CanRead/CanWrite/CanSeekClose()Flush()FlushAsync()LengthPositionCop

2020-09-04 10:00:29 79

原创 Excel中Range的获取与使用

(1)单个单元格Excel.Range verRange = sheet.Cells[rowNumber, verColNumber] as Excel.Range;(2)Excel.Range theRange = sheet.Range[addr],其中addr代表地址,比如"A1:C1"表示A1到C1单元格,"A:B"表示A列和B列。

2020-08-22 16:43:16 212

原创 双击dotx模板文件不能打开模板文件,而是新建以此模板文件作为模板的新文档,怎么办

在操作系统注册表中(regedit),定位到HKEY_CLASS_ROOT----->Word.Template.12,选中键shell,如果shell对应的键值是New,则手工修改为Open。

2020-08-20 15:28:43 107

原创 wpf之BitmapImage

WPF中的BitmapImage类是UI控件类,是.net对象,使用完毕不需要Dispose或close来对其释放资源;需要在UI线程上对其进行操作,不能再其他线程上对其进行操作,否则会报错。可以将其用于Image控件的Source属性,通常该Source属性可以简单的用路径来设置,比如<Image Source="c://123.jpg"/>,但是,当对123.jpg频繁进行修改时,会存在文件被进程占用的异常。这是可以采用BitmapImage对象。比如:<Imag...

2020-08-17 10:21:07 126

原创 VSTO部署方式

VSTO部署方式https://docs.microsoft.com/zh-cn/visualstudio/vsto/deploying-a-vsto-solution-by-using-windows-installer?view=vs-2019

2020-08-05 18:11:03 40

原创 word的构建基块(Building Block)的创建与使用

详细内容可以参考https://support.microsoft.com/zh-cn/office/%E5%9C%A8-word-%E6%96%87%E6%A1%A3%E4%B8%AD%E5%88%9B%E5%BB%BA%E5%92%8C%E4%BD%BF%E7%94%A8%E5%86%85%E5%AE%B9%E6%9E%84%E5%BB%BA%E5%9F%BA%E5%9D%97-0b5a27ae-9776-4096-bcfc-98599f16cadc

2020-08-02 21:44:56 283

原创 c#获取当前工作路径(VSTO)

System.IO.Directory.CurrentDirectory 可以获取到Exe可执行程序的安装路径,但获取不了VSTO插件文件安装路径AppDomain.CurrentDomain.BaseDirectory 可以获取到VSTO文件安装的路径

2020-07-27 12:32:49 101

原创 常用符号的Unicode

序号 具体符号 Unicode1 ㎡ \u33A12 × \u00D73 ≥ \u22654 ≤ \u22645 ∽...

2020-06-30 19:13:04 213

原创 Button下拉式菜单

对于Button下拉式菜单,代码如下: <Button x:Name="PopupMenu" Content="&#x2507;" Click="PopupMenu_Click"> <Button.ContextMenu> <ContextMenu Name="contextMenu">...

2020-05-18 10:30:33 414

原创 WPF部分控件的键盘事件无法触发

对于默认情况下无法触发键盘事件的控件,比如ItemsControl,StackPanel,Canvas,Grid等,为了能够触发事件,需要利用控件的Focus()方法来使其获得焦点。步骤1:将控件的Focusable属性设置为true,即在xaml中,使用Focusable=true来设置步骤2:在鼠标或其他事件中,对控件施加方法Focus,如myCanvas.Focus()...

2020-05-17 17:34:23 380

原创 代码生成的形状控件的事件无法冒泡到父/祖父控件中

有时,利用程序生成的WPF的UI控件对象,其事件无法冒泡到其背后的父/祖父控件上。比如以下代码,在代码中生成了一系列的Reatangle对象,但是rect对象的事件无法冒泡到myGridControl的上级控件上。public void UpdateRects(IEnumerable<Point> points) { foreach(var p in points) { Syste...

2020-05-17 16:44:00 124

原创 WPF—TextBox 后台绑定double,如何让前台不显示默认0

WPF—TextBox 后台绑定double,如何让前台不显示默认0

2020-05-16 19:10:10 130

原创 Polyline的锐角交叉点突出较长的解决方法

WPF中的Polyline在线段之间为锐角,尤其是锐角很小的时候,会突出交叉点较长的距离(形成楔形三角形形状)。为了不显示突出的部分,可以通过设置StrokeLineJoin属性来解决,如下所示。 polyline.StrokeLineJoin = PenLineJoin.Round;...

2020-05-16 19:00:09 151

原创 Shapes.AddPolyline的用法

Word中插入Polyline时,使用Shapes.AddPolyline(ref object safeArrayOfPoints, ref object Anchor) 方法时,safeArrayOfPoints的构造方法如下: float[,] ps = new float[n, 2]; //n表示点的数量 ps[0, 0] = 0.1f; ps[0, 1] = 0.1f; ps[1, 0] = 0.2f;...

2020-05-16 11:43:33 225

原创 WPF之TextBox获得焦点

当 textBox.Focus();或 Keyboard.Focus(textBox)无效的时候,试试下面方法: this.Dispatcher.BeginInvoke(DispatcherPriority.Background,(Action)(() => { Keyboard.Focus(textBox); }));实测有效...

2020-05-16 09:36:50 511

原创 stylus、touch 、 Mouse event ,WPF

(1)Mouse相关的事件对象(MouseButtonEventArgs)中的数据:e.StylusDecice==null(2)Stylus触笔事件(StylusXXXEventArgs)中的数据:e.StylusDevice!=null&&e.StylusDevice.Id=2(3)Touch手指触摸事件(TouchEventArgs)中的数据:...

2020-04-24 22:11:24 209

原创 CommonServiceLocator/Microsoft.Practices.ServiceLocation的变化过程

CommonServiceLocator的类最主要的获取服务对对象的代码如下:TService ServiceLocator.Current.GetInstance<TService>()------------------------------------------------------------------------------------------------...

2020-04-18 11:23:58 502

原创 模型设计的一些考虑

(1)设计到多个相同类型实体对象之间的相对较为计算时,尽量不要试图在实体本身的方法中处理,尽可能使用服务类来处理。(2)属性改变时,当要求保证数据一致性时,若需要改变状态的对象关系较远,优先考虑发出事件,在事件处理程序中去实现数据一致性。...

2020-03-22 11:53:56 74

原创 自定义InvokeMouseCommandAction类,用于WPF中的鼠标事件到prism:DelegateCommand的绑定

可以实现鼠标事件绑定到DelegateCommand的功能,对prism中的InvokeCommandAction进行改写,得到InvokeMouseCommandAction类。该类使用很简单,就是<local:InvokeMouseCommandAction Command="{Binding MouseDownCommand}"/>,在xaml中的详细语句如下: ...

2020-03-14 11:23:03 92

原创 Prism之InvokeCommandAction的TriggerParameterPath和CommandParameter的用法

TriggerParameterPath是对应于EventArgs中的属性路径,比如用于SelectionChanged事件,则对应于SelectionChangedEventArgs的属性的字符串,如果写 TriggerParameterPath="AddedItems",则指SelectionChangedEventArgs.AddedItems对象。CommandParameter和Trig...

2020-03-13 18:00:35 608 2

原创 NHibernate+MySQL的基本配置

(一)Nuget下载NHibernate和MySQL.Data(二)配置<?xml version="1.0" encoding="utf-8" ?><configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1...

2020-03-11 12:10:52 173

空空如也

空空如也

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

TA关注的人 TA的粉丝

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