VB.NET COM SQL SERVER
Boa tarde,
Alguem por gentileza pode me dar comando como exemplo de uma Stored Procedure para deletar dados SQL e para Alterar Dados,
e se possivel me mostra como posso importar esse comando para uma Class, e assim eu colocar em um botão
Orbrigado.
No Aguardo.
Alguem por gentileza pode me dar comando como exemplo de uma Stored Procedure para deletar dados SQL e para Alterar Dados,
e se possivel me mostra como posso importar esse comando para uma Class, e assim eu colocar em um botão
Orbrigado.
No Aguardo.
Falaa!..
Entao siga este exemplo:
CREATE PROCEDURE SP_GRAVAR_CLIENTE(@COD_CLI INT,@NOME_CLI NVARCHAR(50),@PARAM INT,@RETORNO INT OUTPUT)
BEGIN
IF @PARAM = 1
BEGIN
DELETE FROM TABELA WHERE COD_CLI = @COD_CLI
IF @@ROWCOUNT > 0
BEGIN
SET @RETORNO = 1
END
END
ELSE
BEGIN
UPDATE TABELA SET NOME_CLI = @NOME_CLI WHERE COD_CLI = @COD_CLI
IF @@ROWCOUNT > 0
BEGIN
SET @RETORNO = 1
END
END
O SQL vai executar este script e retornar se houve sucesso ou falha,caso haja falha ele vai retornar 0 senao 1...
pra executar essa função direto no SQL digite
EXEC SP_GRAVA_CLIENTE(1,[ô]EDUARDO[ô],1,0)
Passei o codigo do cliente 1 nome EDUARDO parametro 1 ou seja um DELETE e o 0 como referencia que ele ira retornar..
Entao siga este exemplo:
CREATE PROCEDURE SP_GRAVAR_CLIENTE(@COD_CLI INT,@NOME_CLI NVARCHAR(50),@PARAM INT,@RETORNO INT OUTPUT)
BEGIN
IF @PARAM = 1
BEGIN
DELETE FROM TABELA WHERE COD_CLI = @COD_CLI
IF @@ROWCOUNT > 0
BEGIN
SET @RETORNO = 1
END
END
ELSE
BEGIN
UPDATE TABELA SET NOME_CLI = @NOME_CLI WHERE COD_CLI = @COD_CLI
IF @@ROWCOUNT > 0
BEGIN
SET @RETORNO = 1
END
END
O SQL vai executar este script e retornar se houve sucesso ou falha,caso haja falha ele vai retornar 0 senao 1...
pra executar essa função direto no SQL digite
EXEC SP_GRAVA_CLIENTE(1,[ô]EDUARDO[ô],1,0)
Passei o codigo do cliente 1 nome EDUARDO parametro 1 ou seja um DELETE e o 0 como referencia que ele ira retornar..
Agora passando como parametro para o VB.NET...
dentro de uma classe voce coloca isso:
Public Class Cliente
Public Function FUNC_DELETAR_CLIENTE(ByVal pCod As String, ByValByVal pNome as String) As boolean
[ô]Nome da minha procedure SP_GRAVA_CLIENTE
Dim Adapt = New SqlDataAdapter([Ô]SP_GRAVAR_CLIENTE[Ô], oConexao)
[ô]Tipo de comando,no me caso um procedimento armazenado
Adapt.SelectCommand.CommandType = CommandType.StoredProcedure
[ô]Os parametros devem ser passados exatamente como esta no banco de dados
Adapt.SelectCommand.Parameters.Add(New SqlParameter([Ô]@COD_CLI[Ô], SqlDbType.Int)) [ô]valor como INT numerico
Adapt.SelectCommand.Parameters([Ô]@COD_CLI[Ô]).Value = pCod
Adapt.SelectCommand.Parameters.Add(New SqlParameter([Ô]@NOME_CLI[Ô], SqlDbType.nVarChar)) [ô]valor como nvarchar literal
Adapt.SelectCommand.Parameters([Ô]@NOME_CLI[Ô]).Value = pNome
Adapt.SelectCommand.Parameters.Add(New SqlParameter([Ô]@PARAM[Ô], SqlDbType.Int))
Adapt.SelectCommand.Parameters([Ô]@PARAM[Ô]).Value = 1 [ô]parametro 1 para DELETAR
Dim vRet as integer
Using DS = New DataSet()
Adapt.SelectCommand.Parameters.Add(New SqlParameter([Ô]@RETORNO[Ô], SqlDbType.Int))
Adapt.SelectCommand.Parameters([Ô]@RETORNO[Ô]).Value = 0 [ô]passando o valor de referencia 0
Adapt.SelectCommand.Parameters([Ô]@RETORNO[Ô]).Direction = ParameterDirection.Output [ô]saida
Adapt.Fill(DS, [Ô]SP_GRAVAR_CLIENTE[Ô])
vRet = Adapt.SelectCommand.Parameters(3).Value.ToString [ô]Posição do parametro
End Using
If (vRet > 0) Then
FUNC_DELETA_CLIENTE = True
Else
FUNC_DELETA_CLIENTE = False
End If
End Function
End Class
Dentro de um FORM com um COMANDO e dois textbox[ô]s coloque isso no evento Click do button
Exemplo:
Sub CMD_DELETAR_CLIENTE()
Dim cli as new Cliente
[ô]quando nao existe um retorno booleano na condição,nao precisa colocar true basta colocar isso
if(cli.FUNC_DELETAR_CLIENTE(me.txt_cod.text,me.txt_nome.text)) then
[ô]se verdadeiro
Msgbox([Ô]Cliente deletado com sucesso!![Ô])
Else
[ô]se falso
Msgbox([Ô]O cliente nao foi deletado[Ô])
End If
End Sub
Pra voce usar pra alterar,basta usar o mesmo codigo da classe cliente na função deletar só passar o parametro diferente de 1 ;)
dentro de uma classe voce coloca isso:
Public Class Cliente
Public Function FUNC_DELETAR_CLIENTE(ByVal pCod As String, ByValByVal pNome as String) As boolean
[ô]Nome da minha procedure SP_GRAVA_CLIENTE
Dim Adapt = New SqlDataAdapter([Ô]SP_GRAVAR_CLIENTE[Ô], oConexao)
[ô]Tipo de comando,no me caso um procedimento armazenado
Adapt.SelectCommand.CommandType = CommandType.StoredProcedure
[ô]Os parametros devem ser passados exatamente como esta no banco de dados
Adapt.SelectCommand.Parameters.Add(New SqlParameter([Ô]@COD_CLI[Ô], SqlDbType.Int)) [ô]valor como INT numerico
Adapt.SelectCommand.Parameters([Ô]@COD_CLI[Ô]).Value = pCod
Adapt.SelectCommand.Parameters.Add(New SqlParameter([Ô]@NOME_CLI[Ô], SqlDbType.nVarChar)) [ô]valor como nvarchar literal
Adapt.SelectCommand.Parameters([Ô]@NOME_CLI[Ô]).Value = pNome
Adapt.SelectCommand.Parameters.Add(New SqlParameter([Ô]@PARAM[Ô], SqlDbType.Int))
Adapt.SelectCommand.Parameters([Ô]@PARAM[Ô]).Value = 1 [ô]parametro 1 para DELETAR
Dim vRet as integer
Using DS = New DataSet()
Adapt.SelectCommand.Parameters.Add(New SqlParameter([Ô]@RETORNO[Ô], SqlDbType.Int))
Adapt.SelectCommand.Parameters([Ô]@RETORNO[Ô]).Value = 0 [ô]passando o valor de referencia 0
Adapt.SelectCommand.Parameters([Ô]@RETORNO[Ô]).Direction = ParameterDirection.Output [ô]saida
Adapt.Fill(DS, [Ô]SP_GRAVAR_CLIENTE[Ô])
vRet = Adapt.SelectCommand.Parameters(3).Value.ToString [ô]Posição do parametro
End Using
If (vRet > 0) Then
FUNC_DELETA_CLIENTE = True
Else
FUNC_DELETA_CLIENTE = False
End If
End Function
End Class
Dentro de um FORM com um COMANDO e dois textbox[ô]s coloque isso no evento Click do button
Exemplo:
Sub CMD_DELETAR_CLIENTE()
Dim cli as new Cliente
[ô]quando nao existe um retorno booleano na condição,nao precisa colocar true basta colocar isso
if(cli.FUNC_DELETAR_CLIENTE(me.txt_cod.text,me.txt_nome.text)) then
[ô]se verdadeiro
Msgbox([Ô]Cliente deletado com sucesso!![Ô])
Else
[ô]se falso
Msgbox([Ô]O cliente nao foi deletado[Ô])
End If
End Sub
Pra voce usar pra alterar,basta usar o mesmo codigo da classe cliente na função deletar só passar o parametro diferente de 1 ;)
Testa os codigos,fiz de cabeça as vezes pode estar faltando alguma coisa...
Falow
Falow
Ae deu erro nos comando SQL =\ da SP
Qual erro esta dando?!
Não está reconhecendo como codigo certo ! no VB
Ta,mas no SQL funcionou a procedure que vc fez?
Que erro o VB net exibe quando voce tenta compilar o codigo?!
Que erro o VB net exibe quando voce tenta compilar o codigo?!
Tenta Assim
Para chamar os Procedimentos faça assim No Botão
Só para lembrar esse código eu adaptei para VB.NET, pois o meu aqui é em C# e é para página de INTERNET eu não sei se
a sua aplicação é WINDOWS APPLICATION ou WEB.
Espero ter ajudado
public sub AlterarDados(ByVal Cod as Integer, ByVal Nome as String, ByVal Endereco as String, ByVal Numero as Integer)
Dim SQL as String
SQL = [Ô]UPDATE SuaTabela SET Nome=@nome, endereco=@endereco, Numero=@Numero[Ô]
SQL = SQL & [Ô] WHERE id=@id[Ô]
Dim comando as SqlCommand = new SqlCommand(SQL, SuaConexao)
comando.Parameters.Add(new SqlParameter([Ô]@id[Ô], Cod))
comando.Parameters.Add(new SqlParameter([Ô]@Nome[Ô], Nome))
comando.Parameters.Add(new SqlParameter([Ô]@Endereco[Ô], Endereco))
comando.Parameters.Add(new SqlParameter([Ô]@Numero[Ô], Numero))
comando.ExecuteNonQuery()
End Sub
public sub Excluir(ByVal Cod as Integer)
Dim comando as SqlCommand = new SqlCommand([Ô]DELETE FROM SuaTabela WHERE id=@Cod[Ô], SuaConexao)
comando.Parameters.Add(new SqlParameter([Ô]@Cod[Ô], Cod))
comando.ExecuteNonQuery()
End Sub
Para chamar os Procedimentos faça assim No Botão
private sub btnAlterar_Click(ByVal sender as object, ByVal e as EventArgs)
Dim Cod as Integer = Convert.ToInt32(txtCódigo.Text)
Dim Nome as String = txtNome.Text
Dim Endereco as String = txtEndereco.Text
Dim Numero as Integer = Convert.ToInt32(txtNumero.Text)
AlteraDados Cod, Nome, Endereco, Numero
End Sub
private sub btnDeletar_Click(ByVal sender as object, ByVal e as EventArgs)
Dim Cod as Integer = Convert.ToInt32(txtCódigo.Text)
Excluir Cod
End Sub
Só para lembrar esse código eu adaptei para VB.NET, pois o meu aqui é em C# e é para página de INTERNET eu não sei se
a sua aplicação é WINDOWS APPLICATION ou WEB.
Espero ter ajudado
Tópico encerrado , respostas não são mais permitidas