sp 给出输出但 SqlDataReader 不

我在 C# 项目中使用 SP 来检索使用 SqlDataReader 的输出。下面是代码。


 public List<LMTUsage> GetCompanyID(string userID, int roleId, String Organisation, String BusinessArea)

    {

        List<LMTUsage> objLMT = new List<LMTUsage>();

        LMTUsage _oELMTUsage;


        SqlConnection oCon = new SqlConnection(ConfigurationManager.ConnectionStrings["LMTConnectionString"].ConnectionString);

        oCon.Open();


        try

        {

            using (SqlCommand _oCmd = new SqlCommand())

            {

                _oCmd.Connection = oCon;


                _oCmd.CommandType = CommandType.StoredProcedure;

                _oCmd.CommandText = "[SC_GetDropdownValues]";


                _oCmd.Parameters.Add(new SqlParameter("@UserId", userID));

                _oCmd.Parameters.Add(new SqlParameter("@RoleId", roleId));


                if (Organisation == "")

                    _oCmd.Parameters.Add(new SqlParameter("@Organisation", DBNull.Value));

                else

                    _oCmd.Parameters.Add(new SqlParameter("@Organisation", Organisation));


                if (BusinessArea == "")

                    _oCmd.Parameters.Add(new SqlParameter("@BusinessArea", DBNull.Value));

                else

                    _oCmd.Parameters.Add(new SqlParameter("@BusinessArea", BusinessArea));


                _oCmd.Parameters.Add(new SqlParameter("@Type", 3));



它是带有 select 语句的非常简单的 SP。从 SQL 2014 执行时,SP 返回输出,但在上述方法中实现时,它不返回任何输出。以下是屏幕供参考。 

http://img1.mukewang.com/6146effd0001a8e508800649.jpg

拉莫斯之舞
浏览 169回答 2
2回答

MMMHUHU

请检查参数中的值。并使用带有填充方法的数据集从 sp 检索数据而不是使用 ExecuteReader()。

qq_花开花谢_0

除非您的存储过程专门命名为 [SC_GetDropdownValues](包括方括号),否则您不需要在 SqlCommand 的CommandText.&nbsp;尝试:_oCmd.CommandText&nbsp;=&nbsp;"SC_GetDropdownValues";
打开App,查看更多内容
随时随地看视频慕课网APP