自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(205)
  • 问答 (1)
  • 收藏
  • 关注

转载 C# 交叉数组和二维数组

int[][] myArray1 = new int[3][]; //交叉数据int[][] myArray2 = new int[3][] { new int[3] { 5, 6, 2 }, new int[5] { 6, 9, 7, 8, 3 }, new int[3] { 3, 2, 4 } }; //交叉数据(赋值)int[,] myArray5 = new int[3, 3]; //二维数据int[,] myArray6 = new int[3, 3] {...

2021-10-13 15:48:08 441

原创 对C#中Dictionary中的key根据value值进行排序

Dictionary<char, int> dic = new Dictionary<char, int>();dic.add('a',2);dic.add('b',3);dic.add('c',1);Resolution:List<char> list = new List<char>(dic.Keys); 1、 list.Sort((a, b) => dic[b] - dic[a]); 2、...

2021-07-04 00:47:23 1046

原创 sql server 通过存储过程方式查询所有数据库的所有数据

根据传进来的数据库name查询该数据库的表、视图、函数、存储过程create procedure st2(@name varchar(100))ASBEGINDECLARE @SQL varchar(1000) set @SQL='SELECT '''+@name+'''dbname,name ,type from '+@name+'..sysobjects where type in (''P'',''FN'',''U'',''V'')' exec(@SQL)END执行语...

2020-09-15 22:47:19 1910

转载 泛型的意义和作用是啥?

简单的说,意义和作用有:  类型的参数化,就是可以把类型像方法的参数那样传递。这一点意义非凡。  泛型使编译器可以在编译期间对类型进行检查以提高类型安全,减少运行时由于对象类型不匹配引发的异常。  泛型方法,算法的复用。蛮神奇的。想要理解为什么引入泛型,就要知道没有泛型的麻烦。  我们知道现在的程序开发都是面向对象了,所以程序里会有很多各种类型的对象,对象多了肯定需要有某种类型的容器来装。所以就有了一些容器类型,比如数组、ArrayList、HashMap、TreeSet等。  对于数组,我

2020-08-19 07:59:49 703 1

转载 sql优化

SQL优化的具体操作:1、在表中建立索引,优先考虑where、group by使用到的字段。2、尽量避免使用select *,返回无用的字段会降低查询效率。如下:SELECT * FROM t优化方式:使用具体的字段代替*,只返回使用到的字段。3、尽量避免使用in 和not in,会导致数据库引擎放弃索引进行全表扫描。如下:SELECT * FROM t WHERE id IN (2,3)SELECT * FROM t1 WHERE username IN (SEL...

2020-08-18 20:08:40 93

原创 sql 存储过程,函数,触发器

触发器:mysqldrop TRIGGER if EXISTS deleteScore2;CREATE trigger deleteScore2AFTERDELETEon studentfor each ROWbegindelete from score where sid=old.id ;endsql serverIF EXISTS( SELECT * FROM sys.triggers WHERE name = N'trigger_name...

2020-08-17 14:37:28 153

原创 C#如何替换字符串中第一个出现的指定字符串?

Regex r = new Regex(childstr);str = r.Replace(str, "", 1);已知一个字符串,比如asderwsde,寻找其中的一个子字符串比如sde 的个数,如果没有返回0,有的话返回子字符串的个数public static int getnum(string str,string childstr) { int num = 0; if (str == "" || childstr ==.

2020-08-11 18:15:50 4193

转载 @Html.EditorFor()用法

@Html.EditorFor()返回一个由表达式表示的对象中的每个属性所对应的input元素,主要是针对强类型,一般这种方式用得多些a、@Html.EditorFor(mode=>mode.Name)如果返回的View给Student实体赋予值,则输出输出<input class="text-box single-line" id="Name" name="Name" type="text" value="默认值" />否则Value为"";b、@Html.EditorFor(m

2020-07-21 13:38:00 2137

转载 工厂方法模式和抽象工厂模式

工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。 在工厂里面可以对对象的创建做严格的定义,client端直接通过工厂创建出来就可以使用了。public abstract class Product { //产品抽象类 public abstract void method();}public class ConcreteProductA extends Product { //具体A产品 @Override public void method() ...

2020-07-15 17:11:41 162

转载 工厂模式

一、引言  在简单工厂模式中讲到简单工厂模式的缺点,有一点是——简单工厂模式系统难以扩展,一旦添加新产品就不得不修改简单工厂方法,这样就会造成简单工厂的实现逻辑过于复杂,然而本专题介绍的工厂方法模式可以解决简单工厂模式中存在的这个问题,下面就具体看看工厂模式是如何解决该问题的。二、工厂方法模式的实现  工厂方法模式之所以可以解决简单工厂的模式,是因为它的实现把具体产品的创建推迟到子类中,此时工厂类不再负责所有产品的创建,而只是给出具体工厂必须实现的接口,这样工厂方法模式就可以允许系统不修改工厂类

2020-07-15 17:06:07 111

转载 抽象工厂模式

一、引言在上一专题中介绍了工厂方法模式,工厂方法模式是为了克服简单工厂模式的缺点而设计出来的,简单工厂模式的工厂类随着产品类的增加需要增加额外的代码),而工厂方法模式每个具体工厂类只完成单个实例的创建,所以它具有很好的可扩展性。但是在现实生活中,一个工厂只创建单个产品这样的例子很少,因为现在的工厂都多元化了,一个工厂创建一系列的产品,如果我们要设计这样的系统时,工厂方法模式显然在这里不适用,然后抽象工厂模式却可以很好地解决一系列产品创建的问题,这是本专题所要介绍的内容。二、抽象工厂详细介绍这里首

2020-07-15 16:57:18 113

转载 单例模式

一、引言最近在设计模式的一些内容,主要的参考书籍是《Head First 设计模式》,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了帮助我更深入地理解设计模式,二同时可以给一些初学设计模式的朋友一些参考。首先我介绍的是设计模式中比较简单的一个模式——单例模式(因为这里只牵涉到一个类)二、单例模式的介绍说到单例模式,大家第一反应应该就是——什么是单例模式?,从“单例”字面意思上理解为——一个类只有一个实例,所以单例模式也就是保证一个类只有一个实

2020-07-15 14:32:15 121 1

转载 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问

解决方案:  1、运行dcomcnfg.exe打开组件服务;  2、依次展开"组件服务"->"计算机"->"我的电脑"->"DCOM配置"->"Microsoft Word 文档"      3、右键打开“属性”对话框,点击“标识”选项卡,选择交互式用户;点击“安全”选项卡,“启动和激活权限”、“访问权限”选择自定义      4、编辑启动和激活权限权限的自定义选项,将NETWORK SERVICE(也有说法需要IIS_IUSERS和everyone用户)添加

2020-07-14 13:38:34 4091

转载 savechange无效的问题

参考网址:https://www.cnblogs.com/zwjaaron/archive/2012/08/23/2652030.html在MVC3中页使用Html.BeginForm()直接提交一个Entity进行更新,发现不行:也不会报错,就是数据没有实际更新掉! 查看底层的Update方法如下:public int Update(T entity) { try { if (entity == n...

2020-07-13 14:25:51 1343

转载 C#反射详解

反射定义  反射提供了封装程序集、模块和类型的对象(Type类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中使用了特性,可以利用反射对它们进行访问。【MSDN】使用场景需要访问程序元数据的特性。 检查和实例化程序集中的类型。 在运行时构建新类型。使用System.Reflection.Emit中的类。 执行后期绑定,访问在运行时创建的类型的方法。【MSDN】形象说明  地球的内部结构:地球的内部结构大体可以分

2020-07-07 13:47:50 713

转载 C# 字典

1. 使用字典原因 通常情况下,我们可以通过int类型的索引号来从数组或者list集合中查询所需的数据。但是如果情况稍微复杂一点:索引号是非int型数据比如string或其他类型该如何操作呢。这个时候我们就可以使用字典了。2. 什么是字典 顾名思义,字典是一种让我们可以通过索引号查询到特定数据的数据结构类型。 关键字 DIctionary3. 用法及注意事项 (1) C#的Dictionary<Tkey,TValue>类在内部维护两个数组来实现该功...

2020-07-07 11:13:03 536

转载 C#简单工厂模式

工厂模式(Factory Pattern)是 C# 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。介绍意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。何时使用:我们明确地计划不同条件下创建不同实例时。如何解决:让其子类实现工厂接口,返回的也是一个抽象的

2020-07-06 10:55:02 867

原创 上传文件与from表单一起提交

注意from头部需要enctype = "multipart/form-data"[HttpPost, ParameterBasedOnFormNameAttribute("save-continue", "continueEditing"), ActionName("Edit")][FormValueRequired("save-continue","save")]public ActionResult Edit(ServiceModel model, HttpPostedFileBase...

2020-07-02 18:32:36 1821

原创 点击一个图片弹出文件选择进行上传

<div style="position: relative;"><img width="100" height="100" id="imageshow" src="/Content/Images/AreaLogo/add.png" /><input type="file" id="file" name="file" onchange="previewImage(this)" style="height:100px;width:100px;opacity:0;curso.

2020-07-02 17:36:16 2266

转载 ModelState.IsValid一直为false的原因

一,问题:ModelState.IsValid一直为false二,解决方法和原因,由于这个方法中传过来的RegisterForm模型的字段,某一个为空值,则会造成这个验证验证为false,去注释掉空的字段即可验证通过...

2020-06-30 13:48:36 2547

原创 post请求及返回403时的响应正文

public string PostHttp(string url, IDictionary<string, string> parameters) { HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;//创建请求对象 request.Method = "POST";//请求方式 request.ContentType = "...

2020-06-23 11:30:44 856

转载 vs未找到导入的项目,请确认 声明中的路径正确

本文解决的问题:VS显示“vs未找到导入XXX.vcxproj 项目,请确认 import 声明中的路径正确”。本文以属性表和版本升级为例。其他问题解决方法相似。1)添加属性表打开别人的项目时,如果他在项目中添加了属性表,而属性表并未同时与工程一起打包,那么你的VS就会显示:D:\xxxx\xxxx.vcxproj : error : 无法读取项目文件“xxxx.csproj”。D:\xxxx\xxxx.vcxproj( ): 未找到导入的项目“C:…..\xxxx.targets”。请确认 i

2020-06-18 15:08:48 3182

转载 sql server配置为允许远程访问

需要别人远程你的数据库,首先需要的是在一个局域网内,或者连接的是同一个路由器,接下来就是具体步骤:(一)首先是要检查SQLServer数据库服务器中是否允许远程链接。其具体操作为:(1)打开数据库,用本地帐户登录,右击第一个选项,选择属性:(2)在打开的属性窗口,在其右边点击“连接”,然后再左侧勾上“允许远程连接到此服务器”::(二)为微软SQL服务器(MSSQLServer)配置相应协议。(1)依次选择:开始-〉所有程序...

2020-06-17 19:58:58 1263

转载 c# 扩展方法详解

扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。 它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀。 扩展方法当然不能破坏面向对象封装的概念,所以只能是访问所扩展类的public成员。扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。C#扩展方法第一个参数指定该方法作用于哪个类型,并且该参数以 this...

2020-06-15 11:40:54 532

原创 两个list在lambda中互相判断包含

List<string> SeparatedPIds = new List<string> (); if (pIds != null) { for (int i = 0; i < pIds.Count; i++) { SeparatedPIds.Add(pIds[i].ToString()); }...

2020-06-12 16:51:32 1524 1

原创 无法创建“System.Object”类型的常量值。此上下文仅支持基元类型或枚举类型

错误代码:query = query.Where(c => ("," + c.Pid + ",").Contains("," + PId + ",")).ToList();运行时会报 “无法创建“System.Object”类型的常量值。此上下文仅支持基元类型或枚举类型”解决方案:string pidstr = "," + PId + ",";query = query.Where(c => ("," + c.Pid + ",").Contains(pidstr)).ToL.

2020-06-12 16:39:18 1403

原创 附加到进程调试断点无法触发问题

本地vs和本地iis网站附加到进程后触发不了,原因是iis网站绑定的网站不是debug版本的,发布的时候需要选择debug版本

2020-06-12 10:50:33 1728

原创 从excel表导入数据到sql server数据库

导入步骤参考百度https://jingyan.baidu.com/article/86fae346148ec53c49121a19.html如果报未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序 错误,需要安装Microsoft Access数据库引擎安装包地址:https://www.microsoft.com/en-us/download/details.aspx?id=13255安装完之后导入数据成功接下来就是从自动生成的表中取出需要的字段放到需要..

2020-06-08 13:39:56 236

原创 linq中tostring不能用,sql中的in在lambda表达式中的应用

然后从网上找到方法SqlFunctions.StringConvertList<materials> materialList =je.materials.Where(x => checkedid.Contains(SqlFunctions.StringConvert((decimal?)x.ID))).ToList();使用后还是报错SqlFunctions”上指定...

2020-06-04 11:47:52 451

转载 nopcommerce笔记:添加数据表及相关配置

如果要在数据库中添加一个新的数据表,需要按照下面的步骤来完成.一、数据库中添加数据表,比如nop_demo二、在domain下添加nop_demo.cs需要在目录Libraries\Nop.Core\Domain\下某个目录下添加相应的类,我在Catalog下添加nop_demo.cs;三、在Mapping下添加map类需要在目录Libraries\Nop.Data\Mapping\下某个目录下添加相应的类,我在Catalog下添加nop_demoMap.cs;四、添加IService.cs\S

2020-06-03 11:26:27 335

转载 依赖注入实例

1.5 实现依赖注入1.5.1 背景介绍设计模式中,尤其是结构型模式很多时候解决的就是对象间的依赖关系,变依赖具体为依赖抽象。平时开发中如果发现客户程序依赖某个(或某类)对象,我们常常会对它们进行一次抽象,形成抽象的抽象类、接口,这样客户程序就可以摆脱所依赖的具体类型。这个过程中有个环节被忽略了——谁来选择客户程序需要的满足抽象类型的具体类型呢?通过后面的介绍你会发现很多时候创建型模式可以比较优雅地解决这个问题。但另一问题出现了,如果您设计的不是具体业务逻辑,而是公共库或框架程序,这时候您是一个

2020-05-24 14:47:02 299

原创 远程桌面时报credssp加密错误

在网上找到的解决办法总结运行 gpedit.msc本地组策略:计算机配置>管理模板>系统>凭据分配>加密Oracle修正选择启用并选择易受攻击由于没有找到加密Oracle修改打开注册表,快百捷输入"regedit"找到文件度夹路径[HKEY_LOCAL_MACHINE]\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters一般情况下,到了Sy..

2020-05-23 11:37:11 318

转载 internal 修饰符 备忘

.internal 修饰符起什么作用?答:internal 修饰符可以用于类型或成员,使用该修饰符声明的类型或成员只能在同一程集内访问接口的成员不能使用 internal 修饰符值得注意的是,如果为 internal 成员加上了 protected 修饰符,这时的访问级别为 internal或 protected。只是看字面意思容易弄错,许多人认为 internal protected 应该是“只有同一个程序集中的子类可以访问”,但其实它表示“同一个程序集中的所有类,以及所有程序集中的子类都可以访.

2020-05-22 10:37:08 414

原创 c#依赖注入

1、构造器注入通过构造器进行依赖注入public class MyClass{private IMyInterFace _myinterface;public MyClass (IMyInterFace myinterface){this._myinterface = myinterface;}}2、Setter注入通过属性的访问器进行依赖注入private IMyInterFace _myinterface;public IMyInterFace myinterface{get

2020-05-21 08:36:30 426

原创 .net core+ef+mysql dbfist

一、加三个包Microsoft.EntityFrameworkCore.ToolsMicrosoft.VisualStudio.Web.CodeGeneration.DesignMySql.Data.EntityFrameworkCore二、程序包管理器控制台Scaffold-DbContext -Force "Server=localhost;User Id=root;Password=123456;Database=reserve" MySql.Data.EntityFramew..

2020-05-14 23:25:57 142

原创 c#压缩图片问题总结

代码:方法1:方法较简单,相对于其他方法来说不安全,Size参数也不太合适,换成尺寸大小更好一点public static Bitmap GetImageThumb(Bitmap mg, Size newSize) { double ratio = 0d; double myThumbWidth = 0d; double myThumbHeight = 0d; int x = 0;

2020-05-12 15:03:47 539

原创 [c#]用两个栈实现一个队列&用两个队列实现一个栈

代码:static void Main(string[] args) { queueClass queue = new queueClass(); queue.push(1); queue.push(2); queue.push(3); Console.WriteLine("队列输出:"); Console.WriteLine(queue.po

2020-05-11 22:55:18 343

转载 [Git add . ] 遇到The file will have its original line endings in your working directory 解决办法

1.在新项目中使用[ git add . ]时出现:warning: LF will be replaced by CRLF in ...... The file will have its original line endings in your working directory. 解决办法为:1 git config --global core.autocrlf false2.出现上述原因为:1 原因是路径中存在 / 的符号转义问题,false就是不转换符号默认是tr

2020-05-10 21:20:53 410

原创 AutoFac在MVC中的使用

参考网址:https://www.cnblogs.com/wyy1234/p/9144669.html基本结构:AutoFacMvc作为ui层 ,IService类库(各种服务接口),Service类库(IService中接口的实现),Model类库(数据模型,这里使用EF)我们的目的:实现MVC中的Controller和Service中的具体实现类解耦获取用户列表的简单例子:IService中的接口:public interface IUserService { .

2020-05-10 21:07:55 420

转载 net中特性和属性和字段定义

什么是特性?  MADN的定义为:公共语言运行时允许添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型、字段、方法和属性等。Attributes和Microsoft .NET Framework文件的元数据保存在一起,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。  我们简单的总结为:定制特性attribute,本质上是一个类,其为目标元素提供关联附加信息,并在运行期以反射的方式来获取附加信息。具体的特性实现方法,在接下来的讨论中继续深入.

2020-05-09 11:03:18 494

空空如也

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

TA关注的人

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