quinta-feira, 11 de fevereiro de 2010

C# - Gravando usando procedure em banco de dados

Esta função pode ser colocada diretamente na classe que realiza os controles.

TpOperacao = indica se é update ou insert, função que é tratada direto no banco de dados.

public bool GravarAtualizar(char TpOperacao)
        {          
            SqlConnection Conn = new SqlConnection(Componentes.Conexao1); \\utiliza a classe componentes que herda a classe banco.
            Conn.Open();
            SqlCommand cm = Conn.CreateCommand();
            cm.CommandType = CommandType.StoredProcedure;
            cm.CommandText = "SP_IU_Produto"; \\ nome da procedure no banco

            try
            {
                cm.Parameters.Clear();\\limpa os parametros
\\"@xxxx" variável declarada na procedure.

                cm.Parameters.Add("@cdProduto", SqlDbType.VarChar);
                cm.Parameters[0].Value = cdProduto;

                cm.Parameters.Add("@cdInventario", SqlDbType.Int);
                cm.Parameters[1].Value = cdInventario;

                cm.Parameters.Add("@dsProduro", SqlDbType.VarChar);
                cm.Parameters[2].Value = dsProduro;

                cm.Parameters.AddWithValue("@Qtde", SqlDbType.Decimal);
                cm.Parameters[3].Value = Qtde;//.Replace(",", ".");

                cm.Parameters.Add("@valor1 ", SqlDbType.Decimal);
                if (Convert.ToString(valor1) != "")
                {
                    cm.Parameters[4].Value = valor1;//.Replace(",", ".");
                }

                cm.Parameters.Add("@indiceValor1", SqlDbType.VarChar);
                if (Convert.ToString(indiceValor1) != "")
                {
                    cm.Parameters[5].Value = indiceValor1;
                }

                cm.Parameters.Add("@valor2 ", SqlDbType.Decimal);
                if (Convert.ToString(valor2) != "")
                {
                    cm.Parameters[6].Value = valor2;//.Replace(",", ".");
                }

                cm.Parameters.Add("@indiceValor2", SqlDbType.VarChar);
                if (Convert.ToString(indiceValor2) != "")
                {
                    cm.Parameters[7].Value = indiceValor2;
                }

                cm.Parameters.Add("@Imagem1", SqlDbType.Image);
                cm.Parameters[8].Value = imagem1Byte;

                cm.Parameters.Add("@Imagem2", SqlDbType.Image);
                cm.Parameters[9].Value = imagem2Byte;

                cm.Parameters.Add("@QtdeConferido ", SqlDbType.Decimal);
                cm.Parameters[10].Value = QtdeConferido;

                cm.Parameters.Add("@Ocorrencia", SqlDbType.VarChar);
                cm.Parameters[11].Value = Ocorrencia;

                cm.Parameters.Add("@TpOperacao", SqlDbType.Char);
                cm.Parameters[12].Value = TpOperacao;

                cm.Parameters.Add("@cdBarra", SqlDbType.VarChar);
                cm.Parameters[13].Value = cdProduto;

                cm.ExecuteNonQuery();
                return true;
            }
            catch
            {
                return false;
            }
            finally
            {
                cm.Dispose();
                Conn.Close();
                Conn.Dispose();
            }

Att.
Fernando Valota

Nenhum comentário:

Postar um comentário