Как запрашивать и получать информацию из Datatable в C # - PullRequest
0 голосов
/ 21 октября 2010

Я помещаю информацию из папки в таблицу данных. Я помещаю информацию в таблицу данных, используя следующую строку кода:

dtUpgradeFileInfo.Rows.Add (НУМС [0], НУМС [1], НУМС [2], test1);

Кажется, он работает, но я не так знаком с таблицами данных в C #, как в VB. Как мне искать таблицу данных, где первый столбец имеет определенное значение, а третий столбец имеет наибольшее значение, если в первом столбце есть несколько строк с одинаковым значением. Я также не уверен, как получить информацию, когда нашел нужную мне строку. Тип для каждого столбца: int, int, int, string соответственно.

1 Ответ

0 голосов
/ 21 октября 2010

Если под VB вы подразумеваете VB.NET , а не что-то вроде VB6, то код для работы с DataTables (в отличие от устаревших наборов записей VB) будет таким же в C #.Скорее, методы, которые вы бы использовали, очевидно, синтаксис будет другим, потому что это C #.Там есть точки с запятой и скобки, где вы могли бы, кроме скобок.Но они используют одни и те же объекты, вызывая одни и те же методы.

В любом случае, вы можете сделать это (C # 3.0 +)

DataRow matchingRow = (from DataRow row in dtUpgradeFileInfo.Rows
                       where (int)row["Column1"] == yourValue
                       orderby (int)row["Column3"] descending
                       select row).FirstOrDefault();

if (matchingRow != null)
{
    // get to work
}

И для ответа без LINQ (любая версияиз C #)

string filter = "Column1 = " + yourValue.ToString();
string sortOrder = "Column3 desc";

dtUpgradeFileInfo.DefaultView.RowFilter = filter;
dtUpgradeFileInfo.DefaultView.Sort = sortOrder;
DataRow myRow = null;
DataTable filteredTable = dtUpgradeFileInfo.DefaultView.ToTable();
if (filteredTable.Rows.Count > 0)
    myRow = filteredTable.Rows[0];

if (myRow != null)
{
    // get to work
}
...