C# 如何优雅地检查存储过程返回值
这是我当前实现的一个存储过程,它返回给定订单ID的订单状态。有两种情况C# 如何优雅地检查存储过程返回值,c#,.net,sql-server,stored-procedures,ado.net,C#,.net,Sql Server,Stored Procedures,Ado.net,这是我当前实现的一个存储过程,它返回给定订单ID的订单状态。有两种情况 有匹配的订单ID,我将检索相关状态 没有匹配的订单ID(即不存在的订单ID) 我的困惑是,如何在一个存储过程中优雅/高效地实现这两个函数,以便在情况1中返回匹配的订单ID,并在情况2中指示客户机没有匹配的订单ID 我使用VSTS2008+C#+ADO.Net+.NET3.5作为客户端,使用SQLServer2008作为服务器 CREATE PROCEDURE [dbo].[GetStatus] @ID [nvarc
CREATE PROCEDURE [dbo].[GetStatus]
@ID [nvarchar](256),
@Status [int] output
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT @Status = [Status]
FROM [dbo].[OrderStatus]
WHERE (@ID = [ID]);
END
提前感谢,,
乔治您可以采取多种方法:
SET @Status = SELECT [Status]
FROM [dbo].[OrderStatus]
WHERE (@ID = [ID]);`
您可以采取多种方法:
SET @Status = SELECT [Status]
FROM [dbo].[OrderStatus]
WHERE (@ID = [ID]);`
为什么要使用输出参数 您只需要将存储过程结果放入数据访问层的数据集中。
只要检查如果(dataset!=null)则取值,否则将向业务层返回适当的消息。为什么要使用输出参数 您只需要将存储过程结果放入数据访问层的数据集中。 只需检查if(dataset!=null),然后取值,否则将适当的消息返回到业务层。您可以在存储过程中使用“if语句”。底部的网站提供了一些提示 您可以在存储过程中使用“if语句”。底部的网站提供了一些提示
谢谢,对于您的解决方案1,我应该调用ExecuteOnQuery还是调用ExecuteReader?谢谢,对于您的解决方案1,我应该调用ExecuteOnQuery还是调用ExecuteReader?