如果我在@Name字符串中使用带有西里尔字符的值,则下一个代码段会抛出异常。如果我使用拉丁字符,它可以正常工作。在.Net 4.0的Windows主机上工作正常。但是在Ubuntu 14.04上使用last mono它有错误。 SQL Server 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();
}
答案 0 :(得分:0)
尝试
sqlParameter = new SqlParameter("@Name", SqlDbType.NVarChar, 0, "Name");
代替
sqlParameter = new SqlParameter("@Name", SqlDbType.VarChar, 0, "Name");