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 hashlib
hash = 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 hashlib
name1 = 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))
{
//如果是管理员,则直接运行