如何使用C#解析SQL查询结果并对其进行修改?

时间:2009-07-12 12:36:31

标签: c# asp.net sql parsing

我正在尝试做一些非常简单的事情,但我似乎无法找到正确的方法。

我有一个包含查询结果的MySqlDataAdapter对象。我想在ASP.NET Repeater中呈现它之前解析此查询的结果。 (将日期从Unix Epoch转换为人类可读的东西)。

到目前为止,我无法简单地找到如何创建一个允许我在SQL结果中逐行移动的循环,解析几个字段并更改某些字段的内容。

我也不确定我是否可以直接从MySqlDataAdapter,DataSet或DataTable执行此操作。我在网上看到的大多数例子都没有涵盖那个特定主题。

3 个答案:

答案 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方式,但应该能够很好地满足您的需要。