SQL参数丢失,但不丢失 [英] SQL Parameter missing, but not missing

查看:83
本文介绍了SQL参数丢失,但不丢失的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我遇到了一个错误没有意义的问题.立即窗口显示该参数未丢失,但调试器显示该参数丢失.

错误:过程或函数"cpWeeklyPharmDataintDrvr"需要未提供的参数"@companyID".

立即窗口:
?cmd.Parameters ["@ companyID"].Value
1356

I am running into an issue where the error does not make sense. The immediate window says that the parameter is not missing but the debugger says that it is missing.

Error: Procedure or function ''cpWeeklyPharmDataintDrvr'' expects parameter ''@companyID'', which was not supplied.

Immediate Window:
?cmd.Parameters["@companyID"].Value
1356

SqlCommand cmd = new SqlCommand("cpWeeklyPharmDataintDrvr", sqlC);

            SqlConnection sqlC = new SqlConnection(ConfigurationManager.ConnectionStrings["Reports"].ToString());
            SqlCommand cmd = new SqlCommand("cpWeeklyPharmDataintDrvr", sqlC);

            sqlC.Open();

            cmd.Parameters.Add(new SqlParameter("@companyID", SqlDbType.Int)).Value = Master.CompanyId;
            cmd.Parameters.Add(new SqlParameter("@sStartDate", SqlDbType.NVarChar, 30)).Value = Master.StartDate;
            cmd.Parameters.Add(new SqlParameter("@sEndDate", SqlDbType.NVarChar, 30)).Value = Master.EndDate;
            if (Master.RegionId > 0)
                cmd.Parameters.Add(new SqlParameter("@region", SqlDbType.Int)).Value = Master.RegionId;
            if (Master.DistrictId > 0)
                cmd.Parameters.Add(new SqlParameter("@district", SqlDbType.Int)).Value = Master.DistrictId;
            if (Master.StoreId > 0)
                cmd.Parameters.Add(new SqlParameter("@store", SqlDbType.NVarChar)).Value = Master.StoreId.ToString();

            SqlDataReader dR = cmd.ExecuteReader(); //This is where error occurs.
            DataTable d = new DataTable();
            d.Load(dR);

            sqlC.Close();

推荐答案

首先添加...
First Add...
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@CompanyID",CompanyID);
//add your other parameters also



可能是您忘记了声明@companyID
并确保您正在处理像...这样的SP.

存储过程



May be you have forget to Declare @companyID
And Make sure You are dealing with SP like...

Stored Procedure

CREATE dbo.mySP
   @companyID INT,
   @companyName NVARCHAR
   <--Here You need to declare all parameters-->
AS
BEGIN
   INSERT INTO TBL VALUES(@companyID,@companyName)
END




希望这个帮助
------------------
Pratik Bhuva




Hope This Help
------------------
Pratik Bhuva


在存储过程中添加参数@companyID
Include the parameter @companyID in your Stored Procedure


只需删除

如果(Master.CompanyId> 0)

并检查
just remove

if (Master.CompanyId > 0)

and check it


这篇关于SQL参数丢失,但不丢失的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆