简体   繁体   中英

Error message “Could not find stored procedure” when executing stored procedure

I am using a stored procedure to retrieve employee details from a SQL Server database. It was working fine on the staging server.

I just changed the connection string. I have pointed it at my local SQL Server. Connection string is proper. I am getting error near

cmd.executenonquery()

This is what I am trying to do:

public EmployeeDetail GetClientData(int? clientId, string empId, string citizenId, string connectingString)
{
    string constring = connectingString;

    EmployeeDetail objclValues = new EmployeeDetail();

    using (SqlConnection con = new SqlConnection(constring))
    {
        using (SqlCommand cmd = new SqlCommand("usp_Corporate_Employee_Get_Info_for_KYC", con))
        {
            cmd.CommandType = CommandType.Text;

            if (clientId == null)
            {
                cmd.Parameters.AddWithValue("@CorporateID", DBNull.Value);
            }
            else
            {
                cmd.Parameters.AddWithValue("@CorporateID", clientId);
            }

            if (string.IsNullOrEmpty(empId))
            {
                cmd.Parameters.AddWithValue("@EmpId", DBNull.Value);
            }
            else
            {
                cmd.Parameters.AddWithValue("@EmpId", empId);
            }

            if (string.IsNullOrEmpty(citizenId))
            {
                cmd.Parameters.AddWithValue("@CitizenId", DBNull.Value);
            }
            else
            {
                cmd.Parameters.AddWithValue("@CitizenId", citizenId);
            }

            cmd.Parameters.Add("@CorporateName", SqlDbType.VarChar, 40);
            cmd.Parameters.Add("@EmpFullName", SqlDbType.VarChar, 40);
            cmd.Parameters.Add("@Nationality", SqlDbType.VarChar, 100);
            cmd.Parameters.Add("@RetEmpId", SqlDbType.VarChar, 20);
            cmd.Parameters.Add("@RetCitizenID", SqlDbType.VarChar, 15);
            cmd.Parameters.Add("@ResponseCode", SqlDbType.VarChar, 2);
            cmd.Parameters.Add("@ResponseMessage", SqlDbType.VarChar, 70);

            cmd.Parameters["@CorporateName"].Direction = ParameterDirection.Output;
            cmd.Parameters["@EmpFullName"].Direction = ParameterDirection.Output;
            cmd.Parameters["@Nationality"].Direction = ParameterDirection.Output;
            cmd.Parameters["@RetEmpId"].Direction = ParameterDirection.Output;
            cmd.Parameters["@RetCitizenID"].Direction = ParameterDirection.Output;
            cmd.Parameters["@ResponseCode"].Direction = ParameterDirection.Output;
            cmd.Parameters["@ResponseMessage"].Direction = ParameterDirection.Output;

            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();

            objclValues.ClientName = Convert.ToString(cmd.Parameters["@CorporateName"].Value.ToString());
            objclValues.EmpName = Convert.ToString(cmd.Parameters["@EmpFullName"].Value.ToString());
            objclValues.Nationality = Convert.ToString(cmd.Parameters["@Nationality"].Value.ToString());
            objclValues.RetEmpId = Convert.ToString(cmd.Parameters["@RetEmpId"].Value.ToString());
            objclValues.RetCitizenID = Convert.ToString(cmd.Parameters["@RetCitizenID"].Value.ToString());
            objclValues.ResponseCode = Convert.ToString(cmd.Parameters["@ResponseCode"].Value.ToString());
            objclValues.ResponseMessage = Convert.ToString(cmd.Parameters["@ResponseMessage"].Value.ToString());
            objclValues.clientId = clientId.GetValueOrDefault(0);
            objclValues.EmpId = Convert.ToString(cmd.Parameters["@RetEmpId"].Value.ToString());
            objclValues.EmpCitizenId = Convert.ToString(cmd.Parameters["@RetCitizenID"].Value.ToString());
        }
    }
    return objclValues;
}

Connection strings are below.

<!--<add key="SPConnectionstring" value="Data Source=192.168.0.210;Initial Catalog=Test_C3CKYC;UID=sa;Password=123@root" />-->
<add key="SPConnectionstring" 
     value="Data Source=aufbkmjvl28\sqlexpress;Initial Catalog=C3KYC;persist security info=True;UID=sa;Password=root@123" />

Above, commented out section will work correctly.

May I know why I am getting this error? Thank you

You need to change

cmd.CommandType = CommandType.Text;

to this:

cmd.CommandType = CommandType.StoredProcedure;

if you want to run a stored procedure ...

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM