如何通过for循环从DataTable中检索n行

时间:2014-07-19 06:16:20

标签: c#

我正在尝试从数据库中检索数据时遇到问题,该数据在将数据发送到数据库时加密。

现在我想在检索时间期间解密数据并在数据网格视图控件中查看它。 我也有decrpyt函数,就像解密(string Decrypting);.但问题是我无法实现Loop并实现解密函数,以便我可以将实际数据转换为数据Grid-View控件。请帮助我,我们将不胜感激。

  public void SelectData() {   try    {  DataTable dt = new SQLTool().ExecuteOutput("Select * from CustomerTable where Date  between '" + TextBox1.Text.Trim() + "' and '" + TextBox2.Text.Trim() + "'");       

        gvCustomerDetails.DataSource = dt;           

    }
    catch (Exception)
    {

    }

    //Button2.Enabled = true;
    //Button1.Enabled = false;


}

4 个答案:

答案 0 :(得分:0)

您可以在将dt作为数据源分配给数据网格之前解密dt中的数据并进行更新。

答案 1 :(得分:0)

您需要遍历每个记录并放置在同一位置

只需尝试添加

for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
    dt.Rows[i][j] = decrypted(dt.Rows[i][j].ToString());
}
}

答案 2 :(得分:0)

试试这个

for (int i = 0; i < dt.Rows.Count; i++)
{
   for (int j = 0; j < dt.Columns.Count; j++)
   {
       dt.Rows[i]["column_name"] = YourDecriptionFunction(dt.Rows[i]["column_name"].ToString());
   }
}

答案 3 :(得分:0)

尝试这样的事情:

dt.Rows.AsEnumerable().ForEach(x => dt.Columns.ToList().ForEach(y => dt.Rows[x][y] = decryptedFunction(dt.Rows[x][y].ToString())))

**未经测试,但它假设经过每一行和每列解密并存储在同一行,列