예제 #1
0
        public static int inserirPrescricaoElementosPrescritos(PrescricaoElementosPrescritos resultPrescricaoElementosPrescritos)
        {
            {
                /*SqlConnection connection:
                 * O construtor do SqlConnection recebe uma string. Neste caso está definida no ficheiro DAL.settings
                 */
                SqlConnection connection = new SqlConnection(DAL.Default.connectionString);
                /*string cmdString:
                 * String com o comando a executar na base de dados.
                 * Se tiver valores do objeto recebido para inserir na BD (e neste caso tem), devemos colocar os nomes dos atributos antecedidos por uma '@'
                 * de forma a que estes sejam substituídos por parametros mais à frente.
                 */
                string cmdString = "INSERT INTO PRESCRICAOELEMENTOSPRESCRITOS (idElemento, idPrescricao, quantidade)" + " VALUES (@idElemento, @idPrescricao, @quantidade)";

                /*SqlCommand command
                 *Inclui a String que vai ser corrida no SQL Server (cmdString) e a ligação à base de dados (connection)
                 *
                 */
                SqlCommand command = new SqlCommand(cmdString, connection);

                /* Número de linhas da tabela afetadas pelo comando SQL:
                 * Ao corrermos um comando de INSERT,UPDATE ou DELETE, vai ser retornado o número de linhas da tabela que foram afetadas na tabela
                 * Se algo tiver corrido mal o valor será 0
                 * No caso específico do eHC, como só inserimos uma linha de cada vez o valor de retorno irá ser 1 (caso tudo corra bem só UMA linha será inserida).
                 */
                int nAffectedRows = 0;

                //A partir deste momento poderão ocorrer exceções no módulo do SQL pelo que é necessário colocar seguinte código dentro de um "try catch"
                //    try
                //   {
                //Estabelecer a ligação ao SQL Server
                connection.Open();

                //Estes SqlParameter servem para substituirmos os valores da string do comando (cmdString) pelos valores do objeto recebido
                /*
                 * 1) Para cada parâmetro deve ser definida a sua "tag" na string (no caso abaixo: "@nome") e o tipo de dados a ser inserido na base de dados
                 * 2) Dever-se-á copiar o valor do objeto recebido para o SqlParameter
                 * 3) Tem de se adicionar o parâmetro ao comando SQL (command)
                 */
                SqlParameter pIdElemento = new SqlParameter("@idElemento", System.Data.SqlDbType.Int);
                pIdElemento.Value = resultPrescricaoElementosPrescritos.idElementosPrescritos;
                command.Parameters.Add(pIdElemento);

                SqlParameter pIdPrescricao = new SqlParameter("@idPrescricao", System.Data.SqlDbType.Int);
                pIdPrescricao.Value = resultPrescricaoElementosPrescritos.idPrescricao;
                command.Parameters.Add(pIdPrescricao);

                SqlParameter pQuantidade = new SqlParameter("@quantidade", System.Data.SqlDbType.NVarChar);
                pQuantidade.Value = resultPrescricaoElementosPrescritos.quantidade;
                command.Parameters.Add(pQuantidade);

                /*
                 * Para executarmos um comando que não exige retorno de informação das tabelas utilizamos o ExecuteNonQuery()
                 * Como referido anteriormente, este método retorna o número de linhas da tabela afetadas pelo comando
                 */
                nAffectedRows = command.ExecuteNonQuery();

                //   }
                //   catch (SqlException exception)
                //  {
                //       Console.WriteLine(exception.StackTrace);
                //  }
                connection.Close();
                return nAffectedRows;
            }
        }
예제 #2
0
 public static int inserirPrescricaoElementosPrescritos(PrescricaoElementosPrescritos resultPrescricaoElementosPrescritos)
 {
     return prescricaoBLL.inserirPrescricaoElementosPrescritos(resultPrescricaoElementosPrescritos);
 }
예제 #3
0
        private void inserirPrescricaoEAdicionarElementosPrescritos(int idDiagnostico, LinkedList<ElementosPrescritos> elementosPrescricao)
        {
            // COLOQUEI IDPRESCRICAO = IDDIAGNOSTICO!
            prescricaoBLL.inserirPrescricao(idDiagnostico);

            foreach (ElementosPrescritos each in elementosPrescricao)
            {
                ElementosPrescritos dboElementoPrescrito = elementoPrescritoBLL.selectElementoPrescritoByName(each.nome);
                PrescricaoElementosPrescritos resultPrescricaoElementosPrescritos = new PrescricaoElementosPrescritos();
                resultPrescricaoElementosPrescritos.idElementosPrescritos = dboElementoPrescrito.idElemento;
                resultPrescricaoElementosPrescritos.idPrescricao = idDiagnostico;
                resultPrescricaoElementosPrescritos.quantidade = each.quantidade;
                prescricaoBLL.inserirPrescricaoElementosPrescritos(resultPrescricaoElementosPrescritos);
            }
        }