C# 从强类型数据集中获取一个元素

C# 从强类型数据集中获取一个元素,c#,ado.net,dataset,strongly-typed-dataset,C#,Ado.net,Dataset,Strongly Typed Dataset,今天,我刚学会在存储过程中使用强类型数据集,除了一个小问题外,一切都进行得很顺利。考虑到数据表中只有一列和一行的事实,我可以想出如何从数据表中获取数据,并对其进行itarating var bookCountAdapter = new CountBooksTableAdapter(); var bookCountDataTable = new BooksAndCategoriesDataSet.CountBooksDataTable(); bookCountAdapter.Fill(bookCo

今天,我刚学会在存储过程中使用强类型数据集,除了一个小问题外,一切都进行得很顺利。考虑到数据表中只有一列和一行的事实,我可以想出如何从数据表中获取数据,并对其进行itarating

var bookCountAdapter = new CountBooksTableAdapter();
var bookCountDataTable = new BooksAndCategoriesDataSet.CountBooksDataTable();
bookCountAdapter.Fill(bookCountDataTable);
int totalNumberOfBooks = 0;

foreach (BooksAndCategoriesDataSet.CountBooksRow row in bookCountDataTable) {
     totalNumberOfBooks = row.TotalNumberOfBooks;
}

return totalNumberOfBooks;
数据集使用的存储过程是:

CREATE PROCEDURE [dbo].[CountBooks]
AS

SELECT COUNT(*) FROM Books
现在,我的当前代码工作正常。问题是我看不出对
bookCountDataTable
进行itarating的原因,因为我在其中只有一个int类型的元素,我只想检索它

有没有一种方法我可以通过写类似的东西来获得这个元素:

bookCountDataTable.TotalNumberOfBooks
因为我只有一个int类型的元素,我只想 找回那个

使用索引访问它,然后如下所示:

return bookCountDataTable[0].TotalNumberOfBooks
但是,您应该在之前检查表的行计数

从foreach循环看,如果其中有多行,那么将返回最后一行的
TotalNumberofBooks

因为我只有一个int类型的元素,我只想 找回那个

使用索引访问它,然后如下所示:

return bookCountDataTable[0].TotalNumberOfBooks
但是,您应该在之前检查表的行计数


从foreach循环看,如果其中有多行,那么将返回最后一行的
TotalNumberofBooks

我相信你可以这样做:

if(bookCountDataTable.Rows.Count > 0)
{
     totalNumberOfBooks = Convert.ToInt32(bookCountDataTable.Rows[0]["TotalNumberOfBooks"]);
}

我相信你可以这样做:

if(bookCountDataTable.Rows.Count > 0)
{
     totalNumberOfBooks = Convert.ToInt32(bookCountDataTable.Rows[0]["TotalNumberOfBooks"]);
}

如果你确定你将有一个单一的元素,你可以这样做

int totalNumberOfBooks = bookCountDataTable[0].TotalNumberOfBooks;
在任何情况下,都不应该使用数据集来检索单个值。有更好的方法可以做到这一点


即使在键入的数据集上,您也可以使用“设计”视图上的向导来创建返回单个值的查询。

如果您确定您将拥有单个元素,则可以执行以下操作

int totalNumberOfBooks = bookCountDataTable[0].TotalNumberOfBooks;
在任何情况下,都不应该使用数据集来检索单个值。有更好的方法可以做到这一点


即使在键入的数据集上,也可以使用“设计”视图上的向导创建返回单个值的查询。

bookCountDataTable[0]。TotalNumberOfBooks
应该可以工作。
bookCountDataTable[0]。TotalNumberOfBooks
应该可以工作。