我使用SqlBulkCopy
和System.Data.Datatable
將數據插入到我的數據庫中。我在做這樣的事情:如何使用SqlBulkCopy填充數據庫中的加密列?
var table = new DataTable();
// Creating table schema
var newRow = table.NewRow();
newRow["FirstName"] = Parser.Parse(values[0])
newRow["LastName"] = Parser.Parse(values[1])
...
newRos["SSN"] = //here I need to encrypt by db certificate value[5] before set it to this row value
而簡單的複製到DB代碼:
using (var bulkCopy = new SqlBulkCopy(connection, SqlBulkCopyOptions.Default, transaction))
{
bulkCopy.BatchSize = 100;
bulkCopy.DestinationTableName = "dbo.Member";
try
{
bulkCopy.WriteToServer(table);
}
catch (Exception)
{
transaction.Rollback();
connection.Close();
throw;
}
}
我當然可以設置加密列使用後與數據庫中的存儲過程,但我想要做的這在一次交易中。是否可以使用代碼中的數據庫中的證書加密string
值?
在此先感謝!
爲什麼不能使用該值在C#代碼中對其進行加密?爲什麼在加密後無法向DataTable添加值? –
@Shahar我有一個主密鑰,在數據庫中有一些算法的證書。你確定從代碼加密的數據將與使用db過程解密後的數據兼容嗎? – user3818229