我在DataTable中工作正常,但DataSet没有 .Rows 属性。所有字段都不会被加密,因此它们不会全部解密。我假设它会是某种循环,例如:
For (i = 0, i < DataSet.ColumnIndex [Or something], i++)
但是,我不知道如何执行此操作。
基本上,当我使用基于输入参数的SELECT查询返回数据时,用户输入(名字,姓氏)我想解密特定的行。
我目前如何使用它:
Try
For i As Integer = 0 To dt.Rows.Count - 1
dt.Rows(i)("FIRST_NM_TXT") = clsEncrypt.DecryptData(dt.Rows(i)("FIRST_NM_TXT"))
dt.Rows(i)("LAST_NM_TXT") = clsEncrypt.DecryptData(dt.Rows(i)("LAST_NM_TXT"))
Next
Catch ex As Exception
MessageBox.Show("Either the first name or last name did not match. Please check your spelling.")
End Try
我需要DataSet的原因是因为我需要从这个解密数据运行报告。我尝试过我的DataTable,但是我还没有成功。从研究来看,似乎无论如何DataSet都是常见的选择。
答案 0 :(得分:1)
DataSet object只是DataTable对象的集合
您可以通过以下方式访问DataSet中的DataTable:
Oridinal Dim MyDataTable as DataTable = MyDataSet.Tables(2)
或
姓名Dim MyDataTable as DataTable = MyDataSet.Tables("Customers")
一旦拥有DataSet
,只需使用上述方法之一解密数据For i As Integer = 0 To MyDataTable.Rows.Count - 1
MyDataTable.Rows(i)("FIRST_NM_TXT") = clsEncrypt.DecryptData(MyDataTable.Rows(i)("FIRST_NM_TXT"))
MyDataTable.Rows(i)("LAST_NM_TXT") = clsEncrypt.DecryptData(MyDataTable.Rows(i)("LAST_NM_TXT"))
Next