You are not including your NewCompanyID parameter in SqlParameter array param.
public int CompanyRegister(CompanyRegistration Cr)
{
int CompanyID=0;
DataTable dt = new DataTable();
try
{
SqlParameter NewCompanyID = new SqlParameter("@CompID", SqlDbType.Int);
NewCompanyID.Direction = ParameterDirection.Output;
SqlParameter[] param = { NewCompanyID ,
new SqlParameter(@CompName,Cr.CompanyName),
new SqlParameter(@LogoPath,Cr.companylog),
new SqlParameter(@TypeofBusiness,Cr.Typeofbusiness)
}
dt = sh.ExecuteDataTable("dbo.Insert_ALOrganization", param);
CompanyID = Convert.ToInt32(NewCompanyID.Value);
}
catch (Exception ex)
{
throw ex;
}
return CompanyID;
}