如何在 C# 中从数据表中查询和检索信息

Posted

技术标签:

【中文标题】如何在 C# 中从数据表中查询和检索信息【英文标题】:How to query and retrieve information from a Datatable in C# 【发布时间】:2010-10-21 00:02:59 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

也许我做错了什么,但我无法让它工作。到处都是错误行,要求行中间的分号无效)和无效。 我习惯用VB.Net 2008。 抱歉,错字,不是在 IDE 中输入。如果您有更多问题,这预计您的文件中有 using System.Data;using System.Linq; @Bryan,之前没有注意到您的 C# 2.0 标签。我添加了应该在该环境中工作的代码。

以上是关于如何在 C# 中从数据表中查询和检索信息的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中从 SQL Server 数据库中检索数据?

如何在 C# 中从 MySQL 中检索 tinyint 的数据类型?

Android KInvey 如何在单个查询中从多个集合中查询详细信息

如何在单个查询中从多个数据库中检索数据?

如何在 POSTGRESQL 中从两个不同的数据库中检索数据

在 C# 中从 Web 检索匿名类型