我正在通过 .Net 代码导入 CSV 并获取数据表中的数据并尝试使用 SqlBulkCopy 批量插入,但出现证书错误。当我尝试执行其他操作时,只有当我执行 SqlBulkCopy 时才会出现证书错误。这是错误描述
无法使用密钥存储提供程序解密列加密密钥:“MSSQL_CERTIFICATE_STORE”。加密列加密密钥的最后 10 个字节为:'7F-1D-20-E1-43-0B-B5-92-66-78'。在证书位置“CurrentUser”的证书存储“我的”中找不到带有指纹“XXXXXXXXXXXXXXXXXXXXXXXXXX”的证书。验证数据库中主密钥定义列中的证书路径是否正确,并且证书已正确导入到证书位置/存储中。参数名称:masterKeyPath
我在本地机器上做了证书导入。下面是我在 dt 数据表对象中有数据的代码。从 worksheet.Cells.ExportDataTableAsString 返回。
Dim copy As New SqlBulkCopy(ConnString, SqlBulkCopyOptions.KeepIdentity Or SqlBulkCopyOptions.AllowEncryptedValueModifications)
copy.DestinationTableName = "Customer"
copy.ColumnMappings.Add("CustID", "CustID")
copy.ColumnMappings.Add("SSN", "SSN")
copy.WriteToServer(dt)
如果我们按照上面的方法进行,我们需要进行 2 轮插入数据。我有由 Worksheet ExportDataTableAsString 返回的数据表对象。当我直接使用 SQLbulkcopy 的数据表时,我得到证书丢失错误。
有人可以帮我解决这个问题并提出更好的方法。