Below is my code and I get an error at ExecuteNonQuery
:
@Name parameter missing.
I have tried many time and even no error during building of program. The stored procedure contains an insert statement with 4 parameters, 3 of varchar
type and one integer
type as the primary key.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace CompanyMaster
{
public class Master
{
public IEnumerable<Company> Companies
{
get
{
string connectionString = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
List<Company> companies = new List<Company>();
using (SqlConnection con = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand("spGetAllCompany", con);
cmd.CommandType = CommandType.StoredProcedure;
con.Open();
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
Company company = new Company();
company.CompanyCode = Convert.ToInt32(rdr["CompanyCode"]);
company.CompanyName = rdr["CompanyName"].ToString();
company.CompanyAddress = rdr["CompanyAddress"].ToString();
company.CompanyMail = rdr["CompanyMail"].ToString();
companies.Add(company);
}
}
return companies;
}
}
public void Addcompany(Company company)
{
string connectionString = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
using (SqlConnection con = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand("spAddCompany", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Clear();
SqlParameter paramCode = new SqlParameter();
paramCode.ParameterName = "@Code";
paramCode.Value = company.CompanyCode;
cmd.Parameters.Add(paramCode);
SqlParameter PName = new SqlParameter("@Name", SqlDbType.VarChar, 50);
//PName.ParameterName = "@Name";
PName.Value = company.CompanyName;
cmd.Parameters.Add(PName);
SqlParameter paramAddress = new SqlParameter();
paramAddress.ParameterName = "@Address";
paramAddress.Value = company.CompanyAddress;
cmd.Parameters.Add(paramAddress);
SqlParameter paramMail = new SqlParameter();
paramMail.ParameterName = "@Mail";
paramMail.Value = company.CompanyMail;
cmd.Parameters.Add(paramMail);
con.Open();
cmd.ExecuteNonQuery();-- error is occurring here
}
}
}
}
Here is my stored procedure:
CREATE PROCEDURE spAddCompany
@Code INT,
@Name NVARCHAR(50),
@Address NVARCHAR(60),
@Mail NVARCHAR(50)
AS
BEGIN
INSERT INTO CompanyMaster (CompanyCode, CompanyName, CompanyAddress, CompanyMail)
VALUES (@Code, @Name, @Address, @Mail)
END
@Name
parameter is missing when the code reaches ExecuteNonQuery
.