2009-07-12 48 views
0

我试图做一些非常简单的事情,但我似乎无法找到正确的方法来做到这一点。如何解析SQL查询结果并使用C#修改它?

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

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

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

回答

2

首先,你可以填写与结果的数据表:

DataTable table = new DataTable(); 
adapter.Fill(table); 

之后,你可以遍历数据表,做你的修改:

foreach (DataRow row in table.Rows) { 
    row["MyDate"] = DoMagic(row["MyDate"]); 
} 
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... 
    } 
} 
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 

是一个有点哈克的方式做到这一点,虽然,但应该工作不够好,你的目的。