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);
            }
        }
  • 相关阅读:
    JS流程控制语句
    JS操作符
    JS数据类型
    JS基础语法与JS变量
    CSS案例1(导航栏)
    CSS三大特性
    CSS——背景,渐变和列表
    HTML+CSS项目——模拟京东网页
    JavaScript简介
    js -04课程 更换背景图片
  • 原文地址:https://www.cnblogs.com/zoro-zero/p/6763716.html
Copyright © 2011-2022 走看看