2011-10-01 44 views
0

場景:應用程序包含DataGridViews,我從數據庫填充DataGridViews。 數據庫中的所有數據都是加密的,因此在填充我的DataTable後,我需要通過解密方法在DataTable中的每個條目中循環 ,並將 放回到DataTable中的同一位置。我會如何做這樣的工作? 或者有什麼方法可以在數據進入dataTable時解密數據?C#替換數據表中的值

SQLiteDataAdapter dataAdapter = new SQLiteDataAdapter(query, conn); 
SQLiteCommandBuilder commandBuilder = new SQLiteCommandBuilder(dataAdapter); 
DataTable dataTable = new DataTable(); 
dataTable.Locale = System.Globalization.CultureInfo.Invaria… 
dataAdapter.Fill(dataTable); 
//Decrypt cells 
int i; 
foreach (DataRow row in dataTable.Rows) 
{ 
i = 0; 
    foreach (var item in row.ItemArray) 
    { 
     //This doesn't work 
     row.ItemArray[i] = Crypto.Decrypt(item.ToString()); 
     i++; 
    } 
} 
return dataTable; 
+1

這是怎麼回事用'i'變量? - 這個價值不應該在某個時候增加嗎? – ebb

+0

很抱歉忘了放在i ++中。 – Tsukasa

回答

1
for (int i = 0; i < dataTable.Rows.Count; i++) 
{ 
    for (int j = 0; j < dataTable.Columns.Count; j++) 
    { 
     dataTable.Rows[i][j] = Crypto.Decrypt(dataTable.Rows[i][j].ToString()); 
    } 
} 
+0

非常感謝,只要計時器允許,我會盡快接受答案 – Tsukasa