我要拔头发了!!
我写了一个简单的标量函数,现在我试图从 vb.net 执行它并返回结果,但它总是显示为零,即使当我在 SSMS 中调用它时它返回值 1,这就是我预计。
该函数如下所示:
Alter FUNCTION [dbo].[CheckParity]
(@test char(1) )
RETURNS int
AS
BEGIN
declare @result int
IF (SELECT SUM(REVENUEAMOUNT) FROM CommissionDetail WHERE RevenueType IN('P','S')) =
(SELECT SUM(SERVICEREVENUE + PRODUCTREVENUE) FROM SalesmanAttainment)
set @result = 1
else
set @result = 0
return @result
END
我从网上抓取了vb代码:
sql = "dbo.CheckSalesAttainmentParity"
Dim count As Integer
cnn = New OleDbConnection(conn.ConnectionString)
Try
cnn.Open()
cmd = New OleDbCommand(sql, cnn)
cmd.Parameters.Add("test", OleDbType.Integer)
cmd.Parameters("test").Direction = ParameterDirection.ReturnValue
cmd.ExecuteScalar()
count = cmd.Parameters("test").Value
cmd.Dispose()
cnn.Close()
sql = "dbo.CheckSalesAttainmentParity"
Dim count As Integer
cnn = New OleDbConnection(conn.ConnectionString)
Try
cnn.Open()
cmd = New OleDbCommand(sql, cnn)
cmd.Parameters.Add("test", OleDbType.Integer)
cmd.Parameters("test").Direction = ParameterDirection.ReturnValue
cmd.ExecuteScalar()
count = cmd.Parameters("test").Value
cmd.Dispose()
cnn.Close()
我完全被难住了。我会很感激所有的想法