Sql server 如何在sql server中选择输出标量值?
嗨,我还是TSQL的新手。如何输出标量变量,以便我的vb代码可以访问它 在VB中我使用rs方法。在这种情况下,我必须创建3个rs才能访问以下数据。我想有一个存储过程,可以给我4个值,我需要不使用多个rsSql server 如何在sql server中选择输出标量值?,sql-server,tsql,scalar,Sql Server,Tsql,Scalar,嗨,我还是TSQL的新手。如何输出标量变量,以便我的vb代码可以访问它 在VB中我使用rs方法。在这种情况下,我必须创建3个rs才能访问以下数据。我想有一个存储过程,可以给我4个值,我需要不使用多个rs Create PROCEDURE [dbo].[sp_tblTransaction_GET_All_Totals] @TransID bigint AS Declare @MyTotalCharges as money Declare @MyTotalDiscounts as money
Create PROCEDURE [dbo].[sp_tblTransaction_GET_All_Totals]
@TransID bigint
AS
Declare @MyTotalCharges as money
Declare @MyTotalDiscounts as money
Declare @MyTotalPayments as money
Declare @TotalCharges as money
Declare @TotalDiscounts as money
Declare @TotalPayments as money
Declare @Balance as money
SELECT @MyTotalCharges = SUM(Amount)
FROM tblTransactionDetails
WHERE (TransID = @TransID)
SELECT @MyTotalDiscounts = SUM(Amount)
FROM tblTransaction_DP
WHERE (TransID = @TransID)
SELECT @MyTotalPayments = SUM(Amount)
FROM tblPayments
WHERE (TransID = @TransID)
--Below are the scalar values I need to be ouputed and accessed by my vb app.
--How can I output the values below?
@TotalCharges = @MyTotalCharges
@TotalDiscounts = @MyTotalDiscounts
@TotalPayments = @MyTotalPayments
@Balance = (@MyTotalCharges - @MyTotalDiscounts - @MyTotalPayments)
你试过了吗
SELECT @Balance AS 'Balance', @TotalCharges AS 'TotalCharges' ...
您需要将存储过程中的值作为表返回。将此添加到您的过程中
SELECT
@TotalCharges as [Total Charges],
@TotalDiscounts as [Total Discounts],
@TotalPayments as [TotalPayments],
@Balance as [Balance]
然后,您可以从VB应用程序执行存储过程,并将表加载到DataTable中
int transactionID = 0;
DataTable table = new DataTable();
using (var connection = new SqlConnection("connectionString")
using (var command = new SqlCommand("sp_tblTransaction_GET_All_Totals", connection)
{
connection.Open();
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@TransID", transactionID);
using (var adapter = new SqlDataAdapter(command))
{
adapter.Fill(table);
}
}
下面是关于SqlDataAdapter的文档,其中包括C#和VB中的示例
Nice的可能副本!非常感谢@J Lo。这就是我需要的。完美的