c# - 如何使用 TableAdapter 返回单行

标签 c# sql-server datatable dataset datarow

您好,我目前正在使用返回数据表的 TableAdapter,当结果表应该有不止一行时使用它很好,例如:

MyItemsDataTable myItemsDataTable = Adapter.GetAllItems();  

但是如果我们只需要一行作为结果,比如一个具有特定 ID 的项目

MyItemsDataSet.MyItemRow  itemRow = Adapter.GetItemByID(id)[0];  

如何让 Adapter 返回一行而不是 DataTable。 我正在使用 DataSet Designer 向导并为我提供了两个用于放入 SELECT 语句的选项

Use SQL statements -->  Select which return rows
(returns one or many rows)
Use SQL statements -->  Select which returns a single value rows
(returns a single value) 

并使用类似的查询

SELECT * from
FROM  FOOD_ITEMS
WHERE (ITEM_ID = @ITEM_ID)

我是否需要覆盖此方法或添加一个新方法?

public virtual MyItemsDataSet.MyItemsDataTable  GetItemByID(int ITEM_ID)

大概是这样的

public virtual MyItemsDataSet.MyItemRow GetItemByID(int ITEM_ID)

如果是这样,我无法在设计器生成的文件中执行!!我在哪里可以这样做?

谢谢

最佳答案

在数据集设计器中创建一个新的 Select 语句。使用 选择返回的行。然后使用以下查询:

SELECT TOP 1 * from 
FROM  FOOD_ITEMS 
WHERE (ITEM_ID = @ITEM_ID)

将此方法保存为 GetFirstItemByID() 或类似的名称。


对于那里的 googlers,许多非 MS 数据库(例如 MySQL)将改用以下语法:

SELECT * from 
FROM  FOOD_ITEMS 
WHERE (ITEM_ID = @ITEM_ID)
LIMIT 1

关于c# - 如何使用 TableAdapter 返回单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2072460/

相关文章:

sql-server - 如何从 VBScript 运行 Microsoft SQL Server 代理作业

c# - 合并两个没有重复值的数据表

c# - Windows Server 2008 中没有气球工具提示关闭按钮

c# - .NET 首次运行方法时发布代码非常慢。如何使用 NGen 修复它?

c# - 通过 asm DLL 中的 ref 指针取消引用 C#

sql-server - 什么是 SQL Server 数据过多以及如何分析我的执行计划

c# - 在 WinRT/C# 中通过 StreamSocket 连接到 IMAP

sql-server - 如何根据列值选择真/假?

c# - 数据表左加入 c#

java - spring mvc 3 和谷歌数据表