Как проанализировать результат SQL-запроса и изменить его, используя C #? - PullRequest
0 голосов
/ 12 июля 2009

Я пытаюсь сделать что-то очень простое, но, похоже, я не могу найти правильный способ сделать это.

У меня есть объект MySqlDataAdapter, который содержит результат запроса. Я хочу проанализировать результаты этого запроса, прежде чем отображать их в ретрансляторе ASP.NET. (преобразовать дату из эпохи Unix в удобочитаемую информацию такого рода).

Пока что я не могу просто найти, как создать цикл, который позволит мне перемещаться строка за строкой в ​​моем результате SQL, анализировать пару полей и изменять содержимое некоторых полей.

Я также не уверен, смогу ли я сделать это непосредственно из MySqlDataAdapter, или из DataSet, или из DataTable. Большинство примеров, которые я видел в Интернете, не охватывают эту конкретную тему.

Ответы [ 3 ]

2 голосов
/ 12 июля 2009

Сначала вы можете заполнить таблицу данных с результатами:

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

После этого вы можете перебирать DataTable и вносить изменения:

foreach (DataRow row in table.Rows) {
   row["MyDate"] = DoMagic(row["MyDate"]);
}
0 голосов
/ 12 июля 2009

Сделайте это внутри набора данных.

заполняет набор данных из адаптера данных, затем просматривает записи в наборе данных и изменяет их перед привязкой к репитеру.

Что-то вроде:

DataSet ds = new DataSet();
da.Fill(ds);
foreach(DataRow row in ds.Tables[0].Rows)
{
row[0] = ParseThisField(row[0]);
}
// then do your databind

Это немного хакерский способ сделать это, но он должен работать достаточно хорошо для ваших целей.

0 голосов
/ 12 июля 2009

Вы не можете зациклить свой набор результатов над объектом DataAdapter. Вы должны заполнить результаты в 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...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...