小编Mul*_*ova的帖子

操作数类型冲突:varchar 与尝试插入加密数据库的 varchar(50) 不兼容

我得到一个SqlException

操作数类型冲突:varchar 与使用加密的 varchar(50) 不兼容 (encryption_type = 'DETERMINISTIC', encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'CEK_Auto1', column_encryption_key_name_1L_General encryption_property_key_database_1Latinr_Inc.从客户端收到元数据。该错误发生在批处理调用期间,因此客户端可以通过调用 sp_describe_parameter_encryption 刷新参数加密元数据并重试。

我的 C# 代码:

using (var connection = new SqlConnection(GetConnectionString()))
{
    using (var cmd = new SqlCommand("Clients_Insert", connection))
    {
        cmd.CommandType = CommandType.StoredProcedure;

        cmd.Parameters.Add("@Email", SqlDbType.VarChar, 50).Value = client.Email;
        cmd.Parameters.Add("@ContactPerson", SqlDbType.VarChar, 400).Value = client.ContactPerson;

        connection.Open();
        cmd.ExecuteNonQuery();
    }
}
Run Code Online (Sandbox Code Playgroud)

还有我的存储过程:

ALTER PROCEDURE [dbo].[Clients_Insert]
    @Email VARCHAR(50),
    @ContactPerson VARCHAR(400)
AS
BEGIN
    INSERT into dbo.Clients(Email, ContactPerson) 
    VALUES (@Email, @ContactPerson);

    SELECT SCOPE_IDENTITY();
END;
Run Code Online (Sandbox Code Playgroud)

我将数据插入未加密的字段没有问题。

我找到了这篇文章

http://dataap.org/sql-2016-ctp/column-level-encryption-using-always-encrypted-in-sql-server-2016/

我的问题是类似的,但我还没有找到解决方案。

c# sql-server asp.net encryption always-encrypted

4
推荐指数
2
解决办法
2万
查看次数

标签 统计

always-encrypted ×1

asp.net ×1

c# ×1

encryption ×1

sql-server ×1