HELP COM CRIA?ÃO DE API / WEB SERVICE COM BD MYSQL

DS2T 17/02/2017 10:34:19
#471757
Crie uma classe normal, com os métodos:

Adicionar
Alterar
Remover

A única coisa que vai mudar, é que você terá que passar o atributo WebMethod, pra dizer que ele está exposto no seu WebService.
Ficaria algo assim...

Public Class FacilitadorCrud

<WebMethod()>
public sub Adicionar(objeto as SeuObjeto)
[ô]Seu método pra adicionar aqui... igual você faz no Windows Form
end sub

<WebMethod()>
public sub Remover(id as integer)
[ô]Seu método pra remover aqui... igual você faz no Windows Form
end sub

<WebMethod()>
public sub Editar(novoObjeto as SeuObjeto)
[ô]Seu método pra editar aqui... igual você faz no Windows Form
end sub

End Class



Crie um projeto WebService e coloque sua classe lá. Publique seu webservice.

Coloque seu webservice lá na hospedagem do seu site (assim, você pode considerar a string de conexão como local). Precisa ver se ele tem suporte também para a tecnologia .NET...

Na sua aplicação Windows Form, vá em Add Service Reference... Coloque o caminho do seu webservice hospedado na web e seja feliz.

Abraços!
KURTGU 17/02/2017 14:27:38
#471766
GUIMORAES 17/02/2017 14:33:06
#471767
KURTGU

Já publicou seu Web Service? Se sim, basta ir no seu outro projeto, em Window Forms, clicar com o botão direito sobre o projeto e ir em [Ô]Add > Service Reference[Ô]

Após isto, coloque o endereço em que o Web Service está publicado no campo [Ô]Address[Ô]. ex: 127.0.0.1/seuws/servico.asmx
Em seguida clique em Go.

Irá ser exibida uma lista dos serviços, e logo abaixo, a NameSpace, que por padrão vem [Ô]ServiceReference1[Ô], neste caso pode ser alterado, mas vou usa-la como exemplo.

Após fazer este processo, basta instanciar em algum evento, como por exemplo, no seu botão.

  

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Dim servico As New ServiceReference1.SeuWSSoapClient
servico.Inserir([Ô]Josélito[Ô])

End Sub

KURTGU 17/02/2017 14:38:18
#471768
Citação:

:
KURTGU

Já publicou seu Web Service? Se sim, basta ir no seu outro projeto, em Window Forms, clicar com o botão direito sobre o projeto e ir em [Ô]Add > Service Reference[Ô]

Após isto, coloque o endereço em que o Web Service está publicado no campo [Ô]Address[Ô]. ex: 127.0.0.1/seuws/servico.asmx
Em seguida clique em Go.

Irá ser exibida uma lista dos serviços, e logo abaixo, a NameSpace, que por padrão vem [Ô]ServiceReference1[Ô], neste caso pode ser alterado, mas vou usa-la como exemplo.

Após fazer este processo, basta instanciar em algum evento, como por exemplo, no seu botão.

  

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Dim servico As New ServiceReference1.SeuWSSoapClient
servico.Inserir([Ô]Josélito[Ô])

End Sub



Sim ja tinha feito desta forma mais recebo o erro...

System.Web.Services.Protocols.SoapException: O servidor não pôde processar a solicitação. ---> MySql.Data.MySqlClient.MySqlException: Column [ô]usuario[ô] cannot be null
em MySql.Data.MySqlClient.MySqlStream.OpenPacket()
em MySql.Data.MySqlClient.NativeDriver.ReadResult(UInt64& affectedRows, Int64& lastInsertId)
em MySql.Data.MySqlClient.MySqlDataReader.GetResultSet()
em MySql.Data.MySqlClient.MySqlDataReader.NextResult()
em MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
em MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()
em MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
em Service.Inserir(String usuario) na C:\Users\Dario Ferreira Franc\Documents\My Web Sites\WebSite1\WebSite1\App_Code\Service.vb:linha 41
--- Fim do rastreamento de pilha de exceções internas ---
KURTGU 17/02/2017 15:03:09
#471769
é Como se nada estivesse sendo passado...estranho...
GUIMORAES 17/02/2017 15:41:31
#471771
Citação:

System.Web.Services.Protocols.SoapException: O servidor não pôde processar a solicitação. ---> MySql.Data.MySqlClient.MySqlException: Column [ô]usuario[ô] cannot be null
em MySql.Data.MySqlClient.MySqlStream.OpenPacket()
em MySql.Data.MySqlClient.NativeDriver.ReadResult(UInt64& affectedRows, Int64& lastInsertId)
em MySql.Data.MySqlClient.MySqlDataReader.GetResultSet()
em MySql.Data.MySqlClient.MySqlDataReader.NextResult()
em MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
em MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()
em MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
em Service.Inserir(String usuario) na C:\Users\Dario Ferreira Franc\Documents\My Web Sites\WebSite1\WebSite1\App_Code\Service.vb:linha 41
--- Fim do rastreamento de pilha de exceções internas ---




Então, pelo erro que está dando, ele está recebendo valor nulo. Você está passando algum valor no parâmetro?
GUIMORAES 17/02/2017 15:44:50
#471772
Você já fez um debug no seu web service?
KURTGU 17/02/2017 15:49:45
#471773
Estou testando desta forma, para depois testar diretamente na aplicação tem algum problema?

GUIMORAES 17/02/2017 16:04:23
#471774
Citação:

:
Estou testando desta forma, para depois testar diretamente na aplicação tem algum problema?



Não, muito pelo contrário, você precisa testar desta forma para ter certeza que está tudo certo.
Aí, nesta tela, ele está dando algum erro?

Agora, na sua aplicação, verifique se ele está passando algum valor para a chamada do web service.
KURTGU 17/02/2017 17:38:01
#471778
SELECT, UPDATE testado e funcionando... Tentando arrumar o INSERT...
Página 3 de 5 [49 registro(s)]
Tópico encerrado , respostas não são mais permitidas