在C#中使用存儲過程輸出參數(shù)我在將輸出參數(shù)從Sql Server存儲過程返回到C#變量時遇到問題。我已經(jīng)閱讀了有關(guān)此內(nèi)容的其他帖子,不僅在這里,而且在其他網(wǎng)站上,我無法讓它工作。這是我現(xiàn)在擁有的。目前我只是想打印回來的價值。以下代碼返回null值。我試圖返回的是主鍵。我嘗試過使用@@IDENTITY和SCOPE_INDENTITY()(即SET @NewId = SCOPE_IDENTITY())。存儲過程:CREATE PROCEDURE usp_InsertContract @ContractNumber varchar(7),
@NewId int OUTPUT
ASBEGIN
INSERT into [dbo].[Contracts] (ContractNumber)
VALUES (@ContractNumber)
Select @NewId = Id From [dbo].[Contracts] where ContractNumber = @ContractNumberEND打開數(shù)據(jù)庫:pvConnectionString = "Server = Desktop-PC\\SQLEXPRESS; Database = PVDatabase; User ID = sa;
PASSWORD = *******; Trusted_Connection = True;";try{
pvConnection = new SqlConnection(pvConnectionString);
pvConnection.Open();}catch (Exception e){
databaseError = true;}執(zhí)行命令:pvCommand = new SqlCommand("usp_InsertContract", pvConnection);pvCommand.Transaction = pvTransaction;pvCommand.CommandType = CommandType.StoredProcedure; pvCommand.Parameters.Clear();pvCommand.Parameters.Add(new SqlParameter("@ContractNumber", contractNumber));SqlParameter pvNewId = new SqlParameter();pvNewId.ParameterName = "@NewId";pvNewId.DbType = DbType.Int32;pvNewId.Direction = ParameterDirection.Output;pvCommand.Parameters.Add(pvNewId);try{
sqlRows = pvCommand.ExecuteNonQuery();
if (sqlRows > 0)
Debug.Print("New Id Inserted = ",
pvCommand.Parameters["@NewId"].Value.ToString());
}
catch (Exception e)
{
Debug.Print("Insert Exception Type: {0}", e.GetType());
Debug.Print(" Message: {0}", e.Message);
}}
在C#中使用存儲過程輸出參數(shù)
翻過高山走不出你
2019-08-13 14:43:16