【发布时间】:2018-06-24 05:28:26
【问题描述】:
我正在编写一个程序,它需要调用一个名为 dbo.getsystemnumber 的 MSSQL 存储过程;此过程生成下一个 pyd_number,我需要在 paydetail 表中插入新行。程序是这样的:
ALTER PROCEDURE [dbo].[getsystemnumber](@p_controlid varchar(8), @p_alternateid varchar(8))
AS
DECLARE @return_number int
EXECUTE @return_number = dbo.getsystemnumber_gateway @p_controlid, @p_alternateid, 1
RETURN @return_number
我使用 c# tableadapter 来调用这个过程,但是当我调用它并说把它放在标签或列表框上时,它只返回一个值 0。该函数仍然在 SQL Server 中更新到下一个数字我运行程序。
TMW_Test2DataSetTableAdapters.paydetailTableAdapter returnPydNumber = new TMW_Test2DataSetTableAdapters.paydetailTableAdapter();
lbPydnumber.Items.Add(Convert.ToInt32(returnPydNumber.getsystemnumber("PYDNUM", " ")));
但是,当我在 tableadapter 视图中使用预览数据选项时,我得到了我应该得到的正确数字。在 SQL Server 中我们这样称呼它:
declare @pyd_number int
execute @pyd_number = dbo.getsystemnumber N'PYDNUM', NULL
select @pyd_number
【问题讨论】:
-
两种调用方式不一样,一种提供NULL,另一种提供空格。调查这两种情况下的行为。
-
请不要在问题标题中包含标签,@AliAzam
-
@UweKeim 你能告诉我你为什么给我发这种类型的消息吗?
-
@AliAzam 不鼓励在标题中添加标签,因为它看起来很乱并且会使问题不清楚。请参阅meta.stackexchange.com/questions/19190/… 和“我应该在标题中使用标签吗?”在stackoverflow.com/help/tagging
标签: c# sql-server sql-server-2008 stored-procedures