亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C#從存儲過程中讀取輸出值

C#從存儲過程中讀取輸出值

PHP
阿波羅的戰車 2022-12-04 10:32:12
一段時間以來,我一直在嘗試RETURN從我的存儲過程中讀取值,但沒有成功,在我之前的帖子中有人指出我應該使用OUTPUT并且有人提供了一些代碼來說明我將如何做到這一點,因為我以前沒有使用OUTPUT過。我現在正在嘗試將OUTPUT值添加到我的 C# 代碼中。如果投票不存在則返回 0如果投票存在則返回 1該代碼當前拋出錯誤:System.Data.SqlClient.SqlException:過程或函數“Votes”需要參數“@votecount”,但未提供我在這里和谷歌上查看了很多帖子,但沒有找到我的答案,所以希望這里的人可以幫助我解決我要去的地方我的C#command = new SqlCommand($@"EXECUTE dbo.Votes @VotedMember = @@VotedMember,                                              @VotedBy = @@VotedBy",                           StaticObjects._connection);if (Context.Guild.Users.Where(x => x.Username.ToLower() == member.ToLower() ||                                    x.Nickname?.ToLower() == member.ToLower()).Count() > 0){    SqlParameter GOTWParam = new SqlParameter    {         ParameterName = "@@VotedMember",         Value = //code here    }    command.Parameters.Add(GOTWParam);    SqlParameter VotedByParam = new SqlParameter    {        ParameterName = "@@VotedBy",        Value = //code here    };    command.Parameters.Add(VotedByParam);    command.Parameters.Add("@votecount", SqlDbType.Int).Direction = ParameterDirection.Output;    command.ExecuteNonQuery();    int response = Convert.ToInt32(command.Parameters["@votecount"].Value);    switch (response)    {        case 0:           // do something        case 1:           // do something    }}
查看完整描述

1 回答

?
莫回無

TA貢獻1865條經驗 獲得超7個贊

您缺少輸出參數。


TSQL 看起來像:


command = new SqlCommand($@"EXECUTE dbo.Votes @VotedMember = @p_VotedMember,

                                              @VotedBy = @p_VotedBy,

                                              @p_votecount = @votecount output",  

                         StaticObjects._connection);

在 C# 中


var pVotecount = command.Parameters.Add("@p_votecount", SqlDbType.Int);

pVotecount.Direction = ParameterDirection.Output;

其中 @p_是區別于存儲過程參數名稱的參數名稱。


如果使用存儲過程返回值(不是最佳實踐),調用將如下所示:


command = new SqlCommand($@"EXECUTE @p_votecount = dbo.Votes @VotedMember = @p_VotedMember,

                                              @VotedBy = @p_VotedBy",  

                         StaticObjects._connection);

在這兩種情況下都不@p_votecount應該。ReturnValue 僅與 CommandType.StoredProcedure 一起使用。ParameterDirection.OutputParameterDirection.ReturnValue


查看完整回答
反對 回復 2022-12-04
  • 1 回答
  • 0 關注
  • 83 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號