如果你用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
}
也许我做错了什么,但我无法让这个工作。错误行无处不在要求在行中间的分号和无效)和无效。 – Bryan 2010-10-21 00:28:00
和VB.Net 2008是我习惯使用。 – Bryan 2010-10-21 00:29:50
抱歉,错字未在IDE中输入。如果你有更多的问题,这期望你在你的文件中使用System.Data和'System.Linq;'。 – 2010-10-21 00:39:12