我在SQL數據庫表中具有加密名稱(所有其他列未加密)的列。我必須使用加密名稱解密列以在DataGrid中顯示給我的應用程序的用戶,但不應更改實際的SQL數據庫表(必須保留爲加密名稱)。如何更改DataTable列的值並僅在DataGrid中顯示而不更新數據庫的實際表格
我覺得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);
我真的很感激你的卓越。然而,我理解鏈接的內容,但是我很難用Converter編寫代碼,因爲我的專業僅僅是遠離軟件行業的生物化學。請指導我簡單地修改上面的代碼或另一種比Converter更簡單的方法?再一次,非常感謝。 –
明天我會研究,可能會有一些問題給你。 –
請進入你的更新命令,並從中請求我的sql語句?另外選擇SQL。我想我有一個簡單的想法。 –