2010-10-21 82 views
0

我将文件夹中的信息放入数据表中。我使用以下代码行将信息放入数据表中:如何从C#中的数据表中查询和检索信息

dtUpgradeFileInfo.Rows.Add(nums [0],nums [1],nums [2],test1);

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

回答

0

如果你用VB代表你的意思是VB.NET而不是像VB6那样,那么在C#中与DataTables(而不是传统的VB记录集)相配合的代码将是相同的。相反,你会使用的方法,显然语法将是不同的,因为它是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 
} 
+0

也许我做错了什么,但我无法让这个工作。错误行无处不在要求在行中间的分号和无效)和无效。 – Bryan 2010-10-21 00:28:00

+0

和VB.Net 2008是我习惯使用。 – Bryan 2010-10-21 00:29:50

+0

抱歉,错字未在IDE中输入。如果你有更多的问题,这期望你在你的文件中使用System.Data和'System.Linq;'。 – 2010-10-21 00:39:12