using Npgsql;using System.Data;public static class SQLRUN{static string connectionString => $"Host={Config.DictCfg["dbServer"]};Port={Config.DictCfg["dbPort"]};Database={Config.DictCfg["dbName"]};Username={Config.DictCfg["dbUser"]};Password={Config.DictCfg["dbPwd"]};";static Queue<NpgsqlConnection> QueueCon = new Queue<NpgsqlConnection>();static int PoolLimit = 10;static int GetPoolCount(){return QueueCon.Count;}static NpgsqlConnection GetSqlConnect(){lock (QueueCon){NpgsqlConnection con;if (QueueCon.Count > 0){con = QueueCon.Dequeue();if (con.State < ConnectionState.Open){con.Dispose();NpgsqlConnection newcon = new NpgsqlConnection(connectionString);newcon.Open();con = newcon;}}
问题大概是皓月我和一个古巴人的代码协调的时候遇到的。
死活没有搞清楚digest()是啥。
网上也没有、然后就摸清楚了
其实就是得出sha256之后、digest()就是一个二进制数组对象
相当于C#的byte[]
python代码
import hashlibhash = hashlib.sha256("ABC").digest()
C#代码
string str = "ABC";byte[] bytes = Encoding.UTF8.GetBytes(str);byte[] hash = SHA256Managed.Create().ComputeHash(bytes);
其实就是得出sha256之后、hexdigest()就是一个十六进制数组对象
相当于C#的byte[]
Python代码
import hashlibname1 = hashlib.sha256("ABC").hexdigest()
C#
static void Main(string[] args){string str = "ABC";str = sha256(str).ToLower();//相当于python hashlib.sha256(str).hexdigest()}public static string sha256(string data){byte[] bytes = Encoding.UTF8.GetBytes(data);byte[] hash = SHA256Managed.Create().ComputeHash(bytes);StringBuilder builder = new StringBuilder();fo
EF使用mysql时 不要使用DbParameter 会抛出异常
Only MySqlParameter objects may be stored
使用专有的 MySqlParameter ,在Mysql.Data。
DataTime类型需在映射时需要注意。
————————
映射到模型的查询:报错
Unable to convert MySQL date/time value to System.DateTime
解决:在连接字符串里追加
Allow Zero Datetime=True
隱藏的最深的坑之一
D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\PrivateAssemblies
安裝目錄中,在安裝mysql for visual studio 之後
会写入MySql.Data.dll等三个文件 dll文件版本和
会把属性获取推导多一个Get前缀并且错误识别成方法组比如_gamecenterEn.Database.xxxx推导成_gamecenterEn.get_Database().xxxxx一般手动去掉“get_”前缀和方法括号"()"代码就正确了初始化的属性值会被放在外面赋值,然而这样是不被允许的。而且属性名称被追加了"set_"前缀,导致找不到例如IsoDateTimeConverter expr_05 = new IsoDateTimeConverter(); expr_05.set_DateTimeFormat("yyyy'-'MM'-'dd' 'HH':'mm':'ss");改成 初始化赋值 并 更正属性值名称即可IsoDateTimeConverter dtConverter = new IsoDateTimeConverter { DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss" };## get set 方法有概率推到 成为如下造型 运行可能异常public string value{[CompilerGenerated]get{return value;}[CompilerGenerated]set{this.value = value;}}
改为 普通 get set 方法即可
public string value {get;set;}
引入SevenZipBase 和 7z.dll
public R7z(){var path = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "7z\\7z.dll");SevenZipBase.SetLibraryPath(path);}
我们看到SevenZipBase 中的构造方法有四个
传入文件路径的带密码的和不带密码的、传入Stream的带密码的和不带密码的
public SevenZipExtractor(Stream archiveStream);public SevenZipExtractor(string archiveFullName);public SevenZipExtractor(string archiveFullName, string password);public SevenZipExtractor(Stream archiveStream, string password);
我们的资源文件读取都是byte[] ,转换成Stream调用对应构造方法即可
static void Main(string[] args){ @"C:\Users\Administrator\Desktop\2a2baf80-8ded-4a09-80d4-880a740ebb49");new R7z().Decompression(BytesToStream(Resources.资源文件), @"C:\Users\35337\Desktop\123456");Console.WriteLine("完毕");Console.ReadLine();}public static Stream BytesToStream(byte[] bytes){Stream stream = new MemoryStream(bytes);return stream;}
关闭VS、删除文件(即连接对象用户li'sh'ji
C:\Users\yoghurt\AppData\Roaming\Microsoft\VisualStudio\16.0_06025061\ServerExplorer\DefaultView.SEView
神特么是时间格式造成的。
微软的印度CEO...
控制面板 时间 -> 格式 -> 其他设置 -> 重置
然后重新打开Visual Studio Install
由于在集团化公司企业内部
会对于组织架构复杂、
在不同的子公司、不同的部门、或者岗位
会套上不同的薪酬计算公式
财务/人事部门 在薪酬管理职能的需求上、
必然要进行若干套公式管理
既要满足、操作者能够录入普通数学公式
系统便于解析准确运算的情况下、
必然要做相应的设计
下面是我自己的一种设计思路
公式格式示例
[PID:1]+[PID:2]-[PID:3]*[PID:4]/[NUM:1]
公式占位逻辑
工资项格式:
[PID:项目编号ID]
常量:
[NUM:常量值]
运算符
+ - * /
比如
要实现的公式:基本工资+绩效工资+奖金+车费补贴100元
——————————————————
工资项目 | 工资项编号
基本工资 | 1
绩效工资 | 2
奖金 | 3
——————————————————
那么在程序中存储的表达式就为
[PID:1]+[PID:2]+[PID:3]+[NUM:100]
张三的基本工资2000、
绩效工资800、
奖金500
然后我们解析公式
为
2000+800+500+100
运算结果
3400
这里我写了一个最简单的参考性的 代码示例
(未考虑性能、仅思路)
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace HaoYue.DynamicMath{class Program{/// <summary>/// 动态公式解析和计算 代码实现/// 研发部 皓月/// </summary>/// <param name=\"args\"></param>static void Main(string[] args){Console.WriteLine(\"【动态公式解析和计算 代码实现研究】\\n研发部 皓
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication17
{
class Program
{
static void Main(string[] args)
{
//Application.EnableVisualStyles();
//Application.SetCompatibleTextRenderingDefault(false);
/*** 当前用户是管理员的时候,直接启动应用程序* 如果不是管理员,则使用启动对象启动程序,以确保使用管理员身份运行*///获得当前登录的Windows用户标示System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity);//判断当前登录用户是否为管理员if (principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator)){//如果是管理员,则直接运行