Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Array
venerdì 06 gennaio 2006 - 20.23
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Marc1982
Profilo
| Newbie
34
messaggi | Data Invio:
ven 6 gen 2006 - 20:23
Buona sera a tutti,
Ho un classe "Contatti" all'interno di questa classe oltre ai vari get set degli attributi c'è anceh un metedo "RicercaNome" il quale mi restituisce un Vettore di tipo CONTATTI.
Il metodo funziona perfettamente il problema sorge quando dal risultato della ricerca non esce fuori nulla.Io ho ovviato a questo inconveniete semplicemente facendo tronare un solo elemento di tipo CONTATTI vuoto.
Vorei però sapere se c'è un modo diverso perche si io facevo:
Dim c As Contatti
msgbox(c.RicercaNome("PIPPO").Length
Mi da il seguente errore:
Riferimento a un oggetto non impostato su un'istanza di oggetto.
Come posso fare per non far uscire quest'errore e non dover passare un elemento nel vettore VUOTO???
Grazie MIlle
Marco
LAscio sotto il pezzo di classe in questione
Public Function RicercaNome(ByVal NomeR As String) As Contatti()
Dim Connessione As OleDbConnection
Connessione = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Documents and Settings\Administrator\Desktop\Prove_Vb\Agenda\Agenda.mdb")
Try
Connessione.Open()
Catch Errore As Exception
MsgBox(Errore.Message)
End Try
Dim sqlRicerca As String = "Select * From Rubrica where Nome='" + Replace(NomeR, "'", "''") + "'"
Dim rs As OleDbDataReader
Dim Cmd As OleDbCommand
Try
Cmd = New OleDbCommand(sqlRicerca, Connessione)
rs = Cmd.ExecuteReader
Dim VettoreContatti() As Contatti
Dim DimVet As Integer = 0
Dim flag As Boolean = False
While rs.Read
ReDim Preserve VettoreContatti(DimVet)
VettoreContatti(DimVet) = New Contatti(rs("nome"), rs("cognome"), rs("tipologia"))
If rs("telefono").GetType.ToString <> "System.DBNull" Then
VettoreContatti(DimVet).Telefono = rs("telefono")
End If
If rs("indirizzo").GetType.ToString <> "System.DBNull" Then
VettoreContatti(DimVet).Get_Set_Indirizzo = rs("indirizzo")
End If
If rs("cellulare").GetType.ToString <> "System.DBNull" Then
VettoreContatti(DimVet).Get_Set_Cellulare = rs("Cellulare")
End If
flag = True
DimVet = DimVet + 1
End While
If flag = False Then
ReDim Preserve VettoreContatti(DimVet)
VettoreContatti(DimVet) = New Contatti("", "", 0)
End If
Return VettoreContatti
Catch Errore As Exception
MsgBox(Errore.Message)
End Try
End Function
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
ven 6 gen 2006 - 21:31
Ti consiglio di provare con un dataset / dataview.
Ho preparato un piccolo esempio risolto con solo 2 righe di codice, tempo di realizzazione 5 minuti.
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
ven 6 gen 2006 - 23:32
Dimenticavo, per fare la prova hai bisogno del database "northwind" di access versione italiana.
Marc1982
Profilo
| Newbie
34
messaggi | Data Invio:
sab 7 gen 2006 - 11:53
Grazie mille....funziona perfettamente :)
Marco
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !