2010-10-21 67 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