无法将varchar空/空值插入或更新到始终加密的列中

时间:2018-06-28 09:55:33

标签: sql-server always-encrypted

我正在尝试使用sql客户端将C#中的空""null值更新为始终加密的列;但是我越来越错误。如果我通过空格" ",它会起作用。

错误:

  

使用(encryption_type ='DETERMINISTIC',encryption_algorithm_name ='AEAD_AES_256_CBC_HMAC_SHA_256',column_encryption_key_name ='CEK',column_encryption_key_database_name ='db'加密的nvarchar(4000)与nvarchar(TERIN)加密(=) encryption_algorithm_name ='AEAD_AES_256_CBC_HMAC_SHA_256',column_encryption_key_name ='CEK',column_encryption_key_database_name ='db')

1 个答案:

答案 0 :(得分:1)

工作代码如下:

        SqlConnection connection = new SqlConnection(dbString);
        connection.Open();
        SqlParameter p = new SqlParameter("@lastname", System.Data.SqlDbType.NVarChar, 50);
        p.Value = string.Empty;

        SqlCommand command = new SqlCommand("update associate set lastname=@lastname", connection);
        command.Parameters.Add(p);
        command.ExecuteNonQuery();
        connection.Close();

问题在于客户端参数定义必须与服务器上的加密列类型完全匹配。