SqlParameter[] par1 = new SqlParameter[4];
par1[0] = new SqlParameter("@prefix", "TIN-CMP-");
par1[1] = new SqlParameter("@codeLength", "17");
par1[2] = new SqlParameter("@LastCode", "");
par1[3] = new SqlParameter("@retVal", SqlDbType.VarChar, 20);
par1[3].Direction = ParameterDirection.Output;
var data = SqlHelper.ExecuteNonQuery(this.ConnectionString, "Proc_GenerateID", par1);
он не выдает никаких исключений, но возвращает нулевое значение, четная процедура работает нормально в SSMS