如何在C#中从Datatable查询和检索信息

时间:2010-10-21 00:02:59

标签: c# visual-studio-2005 c#-2.0

我将文件夹中的信息放入数据表中。我使用以下代码行将信息放入数据表中:

dtUpgradeFileInfo.Rows.Add(NUMS [0],NUMS [1],NUMS [2],TEST1);

它似乎正在工作,但我对C#中的数据表并不熟悉,就像我在VB中一样。如何搜索第一列具有特定值的数据表,如果第一列中有多个具有相同值的行,则第三列具有最高值。一旦找到了我需要的行,我也不确定如何检索信息。每列的类型分别为int,int,int,string。

1 个答案:

答案 0 :(得分:0)

如果用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
}