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);
            }
        }
  • 相关阅读:
    UVA 11997 K Smallest Sums
    POJ 1007 DNA Sorting
    POJ 3669 Meteor Shower
    POJ 2376 Cleaning Shifts
    POJ 3050 Hopscotch
    操作系统第6次实验报告:使用信号量解决进程互斥访问
    操作系统第5次实验报告:内存管理
    操作系统第4次实验报告:文件系统
    操作系统第3次实验报告:管道
    操作系统第2次实验报告:创建进程
  • 原文地址:https://www.cnblogs.com/zoro-zero/p/6763716.html
Copyright © 2011-2022 走看看