簡體   English   中英

參數未通過

[英]Parameter not passed

今天我犯了一個錯誤。 我不明白為什么。 我希望有人能在這里幫助我

我的方法是

  public UserFamilyInfoBO GetUserFamilyInfo(Int64 UserId)
        {
            try
            {
                DataSet Ds = new DataSet();
                SqlCommand Cmd = new SqlCommand("GetUserFamilyInfo", Cn);
                SqlDataAdapter Da = new SqlDataAdapter();
                Da.SelectCommand = Cmd;
                Cmd.Parameters.Add("@UserId", SqlDbType.BigInt).Value = UserId;

                Cn.Open();
                Da.Fill(Ds);
                Cn.Close();
                return SetBO(Ds.Tables[0]);
            }
            catch (Exception)
            {
                return null;
            }
        }

當執行Da.Fill(Ds)時,它將引發錯誤“過程或函數'GetUserFamilyInfo'期望未提供的參數'@UserId'”。

我已經添加了參數@UserId。 而且我在調試時也能得到它的價值。 仍然我得到錯誤。

我不知道它是否相關,但是您尚未指定命令的類型。 如果這是一個存儲過程,請嘗試使用:

Cmd.CommandType = CommandType.StoredProcedure;

可能由於它沒有出現在命令文本中的任何位置而忽略了該參數-這對於SQL查詢沒有意義,但對於存儲過程確實有意義。

如果這樣做沒有幫助,則可能需要查看SQL Server上的日志以查看其實際發送的內容。

也許您需要將cmd.CommandType設置為StoredProcedure

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM