【问题标题】:Cyrillic value insert error in SqlParameter on mono单声道上的 SqlParameter 中的西里尔值插入错误
【发布时间】:2016-06-08 08:15:48
【问题描述】:

如果我在@Name 字符串中使用西里尔字符作为值,则下一个代码 sn-p 会引发异常。如果我使用拉丁字符,它工作正常。在带有 .Net 4.0 的 Windows 主机上工作正常。但是在带有最后一个单声道的 Ubuntu 14.04 上它有错误。 SQL 服务器 MS SQL 2014。

StringBuilder sb = new StringBuilder();
            sb.AppendLine("INSERT INTO [MyTable]([Name],[ID]) ");
            sb.AppendLine("VALUES(");
            sb.Append("@Name, ");
            sb.Append("@ID)");
            SqlConnection sqlConnection =
                new SqlConnection(connStr);
            try
            {
                sqlConnection.Open();
                SqlCommand sqlCommand = new SqlCommand(sb.ToString(), sqlConnection);

                SqlParameter sqlParameter = null;

                var msg = "Имя";
                sqlParameter = new SqlParameter("@Name", SqlDbType.VarChar, 0, "Name");
                sqlParameter.Value = msg;
                sqlCommand.Parameters.Add(sqlParameter);

                sqlParameter = new SqlParameter("@ID", SqlDbType.BigInt, 0, "ID");
                sqlParameter.Value = 39;
                sqlCommand.Parameters.Add(sqlParameter);

                sqlCommand.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                var a = 0;
            }
            finally
            {
                sqlConnection.Close();
            }

【问题讨论】:

    标签: sql-server ubuntu mono cyrillic


    【解决方案1】:

    试试

    sqlParameter = new SqlParameter("@Name", SqlDbType.NVarChar, 0, "Name");
    

    而不是

    sqlParameter = new SqlParameter("@Name", SqlDbType.VarChar, 0, "Name");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-05
      • 2016-11-27
      相关资源
      最近更新 更多