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; } }
public static int inserirPrescricaoElementosPrescritos(PrescricaoElementosPrescritos resultPrescricaoElementosPrescritos) { return prescricaoBLL.inserirPrescricaoElementosPrescritos(resultPrescricaoElementosPrescritos); }
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); } }