SQL Database テーブルに暗号化された名前の列があります (他のすべての列は暗号化されていません)。そして、暗号化された名前で列を復号化して、アプリケーションのユーザーに DataGrid に表示する必要がありますが、SQL データベースの実際のテーブルは変更しないでください (暗号化された名前のままにする必要があります)。
UpdateCommand は実際のテーブルを更新するために機能すると思いますが、UpdateCommand の下に代わるものを見つける必要があります。
または、データベースの実際のテーブルに影響を与えていない DataTable の 1 つの列のみを復号化する別の方法はありますか?
私の簡単なコードは、
SqlCommand gridcomm = new SqlCommand();
gridcomm.Connection = Conn;
gridcomm.CommandText = "SELECT Id, customername, phonenumber FROM customers";
SqlDataAdapter gridda = new SqlDataAdapter(gridcomm);
SqlDataReader gridreader = gridcomm.ExecuteReader();
while (gridreader.Read())
{
}
gridreader.Close();
DataTable griddt = new DataTable("customers");
gridda.Fill(griddt);
foreach (DataRow row in griddt.Rows)
{
string strcustomername = (string) row["customername"].ToString();
bytecustomername = Convert.FromBase64String(strcustomername);
string decryptedcustomername = DecryptStringFromBytes_Aes(bytecustomername, byteAESKey, byteAESIV);
row["customername"] = decryptedcustomername;
}
gridda.UpdateCommand = new SqlCommandBuilder(gridda).GetUpdateCommand();
dataGrid_Totalcustomerlist.ItemsSource = griddt.DefaultView;
gridda.Update(griddt);