O QUE DEVO RETORNAR NESTA FUNCAO???

MARCOS 12/05/2011 19:01:44
#373808
Prezados colegas,
é uma situação simples:

VB.NET


Criei um método(Função) em uma classe que pesquisa os pedidos de um cliente no meu Banco de dados.Esta
função retorna um DataSet,que uso para exibir num Datagrid.


Public Function Pesquisar ( ByVal Cliente As String) As Dataset

Try

[ô]------------------------------------
[ô]Aqui o código que pesquisa o cliente
[ô]------------------------------------

[ô]Retorna valor
Return Ds1


Catch Ex Exception


End Try


End Function


Minha duvida é a seguinte:

Digamos que meu código que pesquisa os pedidos do cliente
não encontre nada, neste caso meu Dataset não terá nada
que retornar.Quando criamos uma função que retorna valor Boleano
é fácil, pois se a função consegue,retornamos True, se não retornamos
False.Mas,em casos como este em que o que se retorna é um Dataset,
o que devemos fazer a função retornar, se ela não consegue executar
sua finalidade???
TECLA 12/05/2011 20:25:18
#373811
Resposta escolhida
Verifique a quantidade de ROWS que foram retornados pelo DATATABLE do DATASET.

Exemplo:
Dim i As Integer = MinhaClasse.MeuMetodo().Tables(0).Rows.Count
If i > 0 Then FaçaAlgo()
PEGUDO 13/05/2011 12:16:39
#373869
Se código do TECLA não funcionar, tente colocar EOF

[txt-color=#0000f0]If Not[/txt-color] DataSet.EOF [txt-color=#0000f0]Then[/txt-color]
[txt-color=#007100][ô]Código caso tenha dados[/txt-color]
[txt-color=#0000f0]Else[/txt-color]
[txt-color=#007100][ô]Caso não tenha dados[/txt-color]
[txt-color=#0000f0]End If[/txt-color]

Tente o código do TECLA primeiro.
Valeu.
FOXMAN 13/05/2011 13:21:36
#373872
Várias situações

E depende de como a sua função trata o dataset instanciado.

Veja abaixo um exemplo de função que retorna um dataset(com ou sem dados)



Public Function MySqlToDataSet(ByVal strQuery As String, _
Optional ByVal strTable As String = [Ô][Ô]) As DataSet
Try
System.Windows.Forms.Cursor.Current = New System.Windows.Forms.Cursor(sqlcur)
If IsNothing(Conexao) Then
conectado = False
Conexao = Con()
End If

Dim objCommand = New MySqlCommand(strQuery, Conexao)
Dim objDataSet As New DataSet
Dim objSqlDataAdapter As MySqlDataAdapter = New MySqlDataAdapter(objCommand)
If strTable = [Ô][Ô] Then _
objSqlDataAdapter.Fill(objDataSet) _
Else objSqlDataAdapter.Fill(objDataSet, strTable)
objCommand = Nothing
System.Windows.Forms.Cursor.Current = Cursors.Default
Return objDataSet

Catch ex As MySqlException
[ô]tratamento de erros
End Try
End Function




Ou vc pode passar o seu DataSet como parametro e preencher ele dentro da função. Testa ae pois eu nem testei aqui.

Public Function Pesquisar ( ByVal Cliente As String, ByVal seuDataset as DataSet) as Boolean

Try
seuDataSet = new DataSet
[ô] Preencha seuDataSet com os dados da pesquisa
[ô]------------------------------------
RETURN TRUE
Catch Ex Exception
RETURN FALSE
End Try

End Function

Tópico encerrado , respostas não são mais permitidas