zoukankan      html  css  js  c++  java
  • 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);
            }
        }
  • 相关阅读:
    第三次实验总结
    实验总结
    自我介绍
    BGP学习笔记
    source insight用于C语言编程的工具脚本
    LevelDB源码剖析
    LevelDB源码之五Current文件Manifest文件版本信息
    LevelDB源码之六缓存机制
    LevelDB源码之四LOG文件
    jQuery向动态生成的内容添加事件响应
  • 原文地址:https://www.cnblogs.com/zoro-zero/p/6763716.html
Copyright © 2011-2022 走看看