Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

asp.net

Chamar procedure via class.

Recommended Posts

Galera, estou querendo trabalhar com procedure (sql server)

e estou fazendo assim:

 

CREATE PROCEDURE pr_gravarchamado

(

/*===========Tabela Chamado =======================*/

 

@numero_chamado [varchar](41),

@servico_chamado [int],

@tp_chamado [int]

 

)

 

AS

 

Insert Into chamado (numero, servico, tp_chamado) values (@numero_chamado, @servico_chamado, @tp_chamado)

GO

 

Ai criei uma class para o acesso aos dados

Que ficou assim

 

Imports System.Data

Imports System.Data.SqlClient

 

Public Class class_sql

 

Private str_conexao As SqlConnection

Private str_comando As SqlCommand

 

Public Function fc_conexao()

str_conexao =

 

New SqlConnection("Server=desenvolvimento;DataBase=Sig;User=sa;Password=;")

Return str_conexao

 

End Function

 

Public Function fc_procedure(ByVal procedure As String)

Try

str_comando = New SqlCommand

With str_comando

.Connection = fc_conexao()

.CommandType = CommandType.StoredProcedure

.CommandText = procedure

End With

Return str_comando

Catch ex As Exception

 

Finally

 

End Try

End Function

 

Public Function fc_parametros(ByVal campo As String, ByVal tipo As String, ByVal valor As String)

Try

 

With str_comando

.Parameters.Add( New SqlParameter(campo, tipo))

.Parameters(campo).Value = valor

End With

 

Catch ex As Exception

 

End Try

End Function

 

Public Function fc_executar()

Try

str_conexao.Open()

str_comando.ExecuteNonQuery()

Catch ex As Exception

 

Finally

str_conexao.Close()

str_comando.Dispose()

str_conexao = Nothing

End Try

 

End Function

 

End Class

 

Pronto, esta é a classe com várias funções para criar a conexao, criar o comando SQL, adicionar os parametros, e por fim executar. Estou no meu código chamado as funções desta classe assim

 

Private comando_sql As New class_sql

 

With comando_sql

.fc_procedure("pr_gravarchamado")

.fc_parametros("@numero", SqlDbType.VarChar, pro_xml.c_circuito.InnerText)

.fc_parametros("@servico_chamado", SqlDbType.Int, pro_xml.c_servico.InnerText)

.fc_parametros("@tp_chamado", SqlDbType.Int, 1)

.fc_executar()

End With

 

Mas depois de rodar tudo isto não recebo nenhuma mensagem de erro, e nem é adicionado no banco nenhum valor, o que está de errado? E como resolver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, apenas uma dica: Por que você não usa a camada de dados do DAAB (Data Access Application Block), criada pela própria Microsoft. Lá já tem tudo pronto. Apenas adicione no seu projeto e pronto !!!

 

Nesse artigo (http://www.imasters.com.br/artigo.php?cn=3120&cc=109) tem um exemplo bem simples de utilização desta camada e a própria classe para Download.

 

Lembrando que a classe vem aberta, no case de precisar efetuar implementações.

 

Espero ter ajudado.

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas Thiago,Como seria para eu fazer mesmo usando o tratamento normal mesmo, é que estou aprendendo e quero trabalhar da maneira mais usual mesmo para aprender sabe, depois posso passar a usar a facilidades da plataforma.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.