Usuário com melhor resposta
Web Service retornando varios valores

Pergunta
-
Estou começando a engatinhar em Web Service e preciso da ajuda dos companheiros aqui do forum.
Estou criando um Web Service que consulta dados em um base de dados. Esse mesmos dados serão consumitos e preenchidos em um formulário no Access. Até ati tudo bem.
O formulário tem 03 campos e consigo carrega os dados de apenas uma dos dados da consulta através do Web Service.
O que ocorre é que só consigo retornar um dos dados da consulta e na verdade preciso de todos. A consulta tem 03 campos: Aplicativo, Chave, Solicitante
O código que uso é o seguinte:
<WebMethod()> _
Public Function Acesso(ByVal chaves As String) As String'Estabelece a conexão com o provedor
Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\\Inetpub\vhosts\kartoffel.com.br\httpdocs\database\registros.mdb"
Dim sql As String = "SELECT Aplicativo,Chave,Solicitante From Reg_Aplics where Chave='" & chaves & "'"' Create a Connection object and open it
Dim conn As Connection = New Connection
Dim connMode As Integer = ConnectModeEnum.adModeUnknown
conn.CursorLocation = CursorLocationEnum.adUseServer
conn.Open(ConnectionString, "", "", connMode)
'Dim recAffected As Object
Dim cmdType As Integer = CommandTypeEnum.adCmdText
Dim rs As _Recordset = conn.Execute(sql)
' Create dataset and data adpater objects
Dim ds As DataSet = New DataSet("Recordset")
Dim da As OleDbDataAdapter = New OleDbDataAdapter
' Call data adapter's Fill method to fill data from ADO
' Recordset to the dataset
'Return da.Fill(ds, rs, "NomeAplicativos")
'da.Fill(ds)
Return rs(0).ValueReturn rs(1).Value
Return rs(2).Value
rs.Close()
End FunctionO que ocorre é que ele retorna apenas o rs(0), os outros não são retornados.
Sei que estou errando feio. Alguem poderia me indicar aonde está meu erro?
Respostas
-
Entao... eu costumo usar C# ..... faz muito tempo q nao uso VB
pesquisei no google...
http://www.startvbdotnet.com/language/arrays.aspx
corrigindo o codigo
Public Function Acesso(ByVal chaves As String) As String()
Dim result(3) As String
result(0) = rs(0).Value
result(1) = rs(1).Value
result(2) = rs(2).Value
T+
Todas as Respostas
-
Basico de .NET,
vc executou o Return, ele sai do metodo e nao executa mais nada abaixo desta linha... deve ate ter dado um Hint ai te avisando disso...
cria um array de string para voltar o q vc prescisa...
Public Function Acesso(ByVal chaves As String) As String[]
[..]
Dim result As String[3]
result[0] = rs(0).Value
result[1] = rs(1).Value
result[2] = rs(2).Value
rs.Close()
Return result
-
Rui obrigado pela força... com você orientão o código ficou assim:
<WebMethod()> _
Public Function Acesso(ByVal chaves As String) As String[] 'Estabelece a conexÆo com o provedor Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\\Inetpub\vhosts\kartoffel.com.br\httpdocs\database\registros.mdb" Dim sql As String = "SELECT Aplicativo,Chave,Solicitante From Reg_Aplics where Chave='" & chaves & "'" ' Create a Connection object and open it Dim conn As Connection = New Connection Dim connMode As Integer = ConnectModeEnum.adModeUnknownconn.CursorLocation = CursorLocationEnum.adUseServer
conn.Open(ConnectionString,
"", "", connMode) 'Dim recAffected As Object Dim cmdType As Integer = CommandTypeEnum.adCmdText Dim rs As _Recordset = conn.Execute(sql) ' Create dataset and data adpater objects Dim ds As DataSet = New DataSet("Recordset") Dim da As OleDbDataAdapter = New OleDbDataAdapter Dim result As String[3]result[0] = rs(0).Value
result[1] = rs(1).Value
result[2] = rs(2).Value
rs.Close()
Return result End FunctionFiz a adptação que você informou e está dando o erro "Identifier expected" e para as variaveis "not declarede".
Saberia me dizer aonde estou pecando?
-
Entao... eu costumo usar C# ..... faz muito tempo q nao uso VB
pesquisei no google...
http://www.startvbdotnet.com/language/arrays.aspx
corrigindo o codigo
Public Function Acesso(ByVal chaves As String) As String()
Dim result(3) As String
result(0) = rs(0).Value
result(1) = rs(1).Value
result(2) = rs(2).Value
T+
-