一切福田,不離方寸,從心而覓,感無不通。

Category Archives: C#

一个Asp.Net项目,不能编辑并继续,总提示引用的其他项目版本不允许变更

如题,公司的一个项目。 原因:由于未知的原因,被引用项目的GUID和引用的GUID不一致引起的这个问题。 解决:重新引用也无效,那只有手动编辑项目文件了~

龙生   20 May 2021
View Details

Dapper中条件为In的写法

今天用Dapper更新是用到了IN写法,园子里找了篇文章这样写到 传统sql in (1,2,3) 用dapper就这样写

用了之后出现, System.Data.SqlClient.SqlException:““,”附近有语法错误。” 这样的提示, 跟踪SQL语句时发现按以上方法生成的SQL语句是这样的:

我们不难发现生成的语句中多了一层括号,于是果段修改代码:

执行成功!问题解决! 当然也有可能是我的Dapper的版本问题,我用得是:Dapper 1.50.4.0   from:https://www.cnblogs.com/cmt/p/14580194.html?from=https%3A%2F%2Fwww.cnblogs.com%2Fxwei%2Fp%2F8794384.html&blogId=121045&postId=8794384

龙生   06 May 2021
View Details

vs 启用非托管调试时不允许更改

解决方案: 项目->右键属性->调试->启用本机代码调试,去掉勾选!   from:http://www.csframework.com/archive/1/arc-1-20170923-2353.htm

龙生   19 Apr 2021
View Details

如何:启用非托管代码调试

提示 Visual Studio 学习版(如 Visual C# 速成版)不支持调试非托管代码, 只有完整的 Visual Studio 产品才支持此操作。 位于**“项目设计器”的“调试”页上的“非托管代码调试”**属性确定是否支持本机代码调试。 如果要调用 COM 对象,或启动调用您的项目的、以本机代码编写的自定义程序,并且需要调试本机代码,请选定此选项。 启用对非托管代码的调试 在**“解决方案资源管理器”中选定一个项目,然后在“项目”菜单中单击“属性”**。 单击**“调试”**选项卡。 选中**“启用非托管代码调试”**复选框。 禁用对非托管代码的调试 在**“解决方案资源管理器”中选定一个项目,然后在“项目”菜单中单击“属性”**。 单击**“调试”**选项卡。 单击以清除**“启用非托管代码调试”**复选框。   from:https://docs.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2010/tdw0c6sf(v=vs.100)

龙生   19 Apr 2021
View Details

C#生成Guid的几种方式

  from:https://www.cnblogs.com/shiyh/p/10966059.html

龙生   19 Apr 2021
View Details

C#实现新建文件并写入内容

  from:https://www.cnblogs.com/thingk/p/3363880.html

龙生   11 Mar 2021
View Details

PadLeft,PadRight用法

补位 string str = "100"; str.PadLeft(5,’0′) 输出:00100 str.PadRight(5, '0') 输出:10000   from:https://www.cnblogs.com/daviddong/p/5949794.html

龙生   08 Mar 2021
View Details

Asp.Net Core实战常见加密算法(C#)

先问个问题:为什么要使用加密算法? 因为数据在网络中传输时面临4个问题: 窃听 假冒 篡改 事后否认 加密技术就是用来解决“窃听”这个问题的。通常分为两大类:对称加密和非对称加密。 对称加密 概念:对称加密就是加密和解密使用同一个密钥,通常称之为“Session Key ”,这种加密技术在当今被广泛采用,如美国政府所采用的DES加密标准就是一种典型的对称加密算法,它的Session Key长度为56bits。 优点:算法公开、计算量小、加密速度快、加密效率高。适用于需要加密大量数据的场景。 缺点:由于加解密使用同一个密钥,密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦。例如:不适用于浏览器到服务器的通信,因为密钥一旦发送到浏览器端就很容易暴露。 常见算法:AES,DES,3DES,TDEA,Blowfish,RC5,IDEA 非对称加密 概念:非对称加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用。“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。 优点:由于加解密是用不同的密钥,私钥并不公开,这样就保证了信息在网络传输中的安全性:即使被拦截也无法解密。非常适用于客户端到服务端的数据传输。例如:支付宝的支付请求,数字签名等。 缺点:加密速度慢,比较耗资源。只适用于少量敏感信息的加密。如果加密大量消息则效率会变得低下。另外,如果动态生成公钥和私钥也比较耗资源。 常见算法:RSA,Elgamal,背包算法,Rabin,D-H,ECC   有人可能会问,上面两类加密方式怎么没有MD5?MD5……严格意义上说不是一种加密算法,因为它不能解密。它只是一种密码散列算法,只是为了校验信息用的:保证信息没有篡改。如:你下载软件或游戏时,在下载页面官方都会提供一个“MD5字符串”,你下载完成后可以用md5工具对下载到的软件md5校验,如果得到的md5串和下载页面的一致,就说明软件或游戏没有被篡改过,可放心使用。   下面我们就一块来实战几种常见的加密方式和散列算法: DES 分类:对称加密 DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。

  AES 分类:对称加密 高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES(Data Encryption Standard),已经被多方分析且广为全世界所使用。

  RSA 分类:非对称加密 RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。RSA就是他们三人姓氏开头字母拼在一起组成的。RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥,“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。

  生成公钥/密钥的方法(只适用于C#,其他编程语言使用需要转换)

    MD5 分类:散列算法 MD5信息摘要算法(MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。

  SHA-2 分类:散列算法 SHA-2,名称来自于安全散列算法2(英语:Secure Hash Algorithm 2)的缩写,一种密码散列函数算法标准,由美国国家安全局研发,由美国国家标准与技术研究院(NIST)在2001年发布。属于SHA算法之一,是SHA-1的后继者。其下又可再分为六个不同的算法标准,包括了:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。

  欢迎转载,请注明出处:龙生时代

龙生   03 Mar 2021
View Details

[C#]VS2017调试时Console.WriteLine无法在Output窗口输出

问题: 之前在VS2012、VS2015中,可直接在应用程序中Console.WriteLine输出信息来调试bug。最近换到VS2017后,却发现怎么也无法输出 解决: 这个问题的原因是VS2017开始已经不再使用Hosting Process模式,在Hosting Process时可以将信息输出至 Output窗口。 在VS2017及以后的版本可以使用Trace.WriteLine来将调试信息输出至Output窗口。 另外VS2017对CPU的要求也高了,我的老机器一打开没多久就出现很多ServiceHub.Host.CLR.x86.exe的进程,导致写代码卡顿,不得已换了新机器,升级到i5后没再出现卡顿现象了。一起典型的软件倒逼硬件更新的例子,诸君勿笑.   from:https://blog.csdn.net/edcvf3/article/details/104827175

龙生   28 Jan 2021
View Details

Dapper实现Like参数化

//参数直接写参数名 string Sql = "select * from [table] where field like @field"; //参数值里面加上通配符,varchar类型查询也不加单引号 var Param = new {field = "%{ParamValue}%"}; //执行查询 Dapper.Query<T>(Sql,Param);   from:https://www.cnblogs.com/tian2008/p/8491633.html

龙生   27 Jan 2021
View Details
1 4 5 6 43