我正在尝试做一些非常简单的事情,但我似乎无法找到正确的方法。
我有一个包含查询结果的MySqlDataAdapter对象。我想在ASP.NET Repeater中呈现它之前解析此查询的结果。 (将日期从Unix Epoch转换为人类可读的东西)。
到目前为止,我无法简单地找到如何创建一个允许我在SQL结果中逐行移动的循环,解析几个字段并更改某些字段的内容。
我也不确定我是否可以直接从MySqlDataAdapter,DataSet或DataTable执行此操作。我在网上看到的大多数例子都没有涵盖那个特定主题。
答案 0 :(得分:2)
首先,您可以使用结果填充DataTable:
DataTable table = new DataTable();
adapter.Fill(table);
之后,您可以循环访问DataTable并进行修改:
foreach (DataRow row in table.Rows) {
row["MyDate"] = DoMagic(row["MyDate"]);
}
答案 1 :(得分:0)
您无法在DataAdapter对象上循环结果集。您应该fill your results into a DataTable,然后循环行非常简单:
DataSet myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet);
if (myDataSet.Tables.Count > 0)
{
foreach (DataRow drResult in myDataSet[0].Rows)
{
// Do some stuff here over your row...
}
}
答案 2 :(得分:0)
在数据集中进行。
从dataadapter填充数据集,然后遍历数据集中的记录并在将其绑定到转发器之前修改这些记录。
类似的东西:
DataSet ds = new DataSet();
da.Fill(ds);
foreach(DataRow row in ds.Tables[0].Rows)
{
row[0] = ParseThisField(row[0]);
}
// then do your databind
虽然这样做是一种hacky方式,但应该能够很好地满足您的需要。