首页 > 代码库 > Dapper.net Insert mssql unicode 乱码问题
Dapper.net Insert mssql unicode 乱码问题
1、效果:
2、处理方法:
/// <summary> /// insert single sql /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sql"></param> /// <param name="param"></param> /// <param name="connectionString"></param> /// <returns></returns> public static int Insert<T>(string sql, dynamic param = null, string connectionString = null) where T : class, new() { using (IDbConnection conn = OpenConnection(connectionString)) { return conn.Execute(sql, (object)param,null,null,null); } }
public static readonly string InsertSql = @"Insert into SpreadApiErrorMsgs(Id,ControllerName,ActionName,Message,SoluWay,CreateDate) values(@Id,@ControllerName,@ActionName,@Message,@SoluWay,@CreateDate)";
/// <summary> /// insert single sql /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sql"></param> /// <param name="param"></param> /// <param name="connectionString"></param> /// <returns></returns> public static int Insert<T>(string sql, dynamic param = null, string connectionString = null) where T : class, new() { using (IDbConnection conn = OpenConnection(connectionString)) { return conn.Execute(sql, (object)param,null,null,null); } }
PS:Dapper源码:
/// <summary> /// This class represents a SQL string, it can be used if you need to denote your parameter is a Char vs VarChar vs nVarChar vs nChar /// </summary> sealed partial class DbString : Reasonable.Spread.Dapper.SqlMapper.ICustomQueryParameter { /// <summary> /// Create a new DbString /// </summary> public DbString() { Length = -1; } /// <summary> /// Ansi vs Unicode /// </summary> public bool IsAnsi { get; set; } /// <summary> /// Fixed length /// </summary> public bool IsFixedLength { get; set; } /// <summary> /// Length of the string -1 for max /// </summary> public int Length { get; set; } /// <summary> /// The value of the string /// </summary> public string Value { get; set; } /// <summary> /// Add the parameter to the command... internal use only /// </summary> /// <param name="command"></param> /// <param name="name"></param> public void AddParameter(IDbCommand command, string name) { if (IsFixedLength && Length == -1) { throw new InvalidOperationException("If specifying IsFixedLength, a Length must also be specified"); } var param = command.CreateParameter(); param.ParameterName = name; param.Value = (object)Value ?? DBNull.Value; if (Length == -1 && Value != null && Value.Length <= 4000) { param.Size = 4000; } else { param.Size = Length; } param.DbType = IsAnsi ? (IsFixedLength ? DbType.AnsiStringFixedLength : DbType.AnsiString) : (IsFixedLength ? DbType.StringFixedLength : DbType.String); command.Parameters.Add(param); } }
Dapper.net Insert mssql unicode 乱码问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。