LEGGERE UNA STRINGA CON DAO

mercoledì 17 gennaio 2007 - 18.34

MATTEHGT Profilo | Junior Member

Ho il seguente problema: Nonostante abbia impostato i campi testo del database con il flag consenti lunghezza uguale a 0 si in access in visual basic non riesco a leggere i campi testo a lunghezza 0. Effettuo l'apertura del database con un codice del tipo

Dim cod As String
Dim var = TextBox1.Text

Dim cnn1 As New ADODB.Connection
Dim rst1 As New ADODB.Recordset
cnn1.Open("provider=microsoft.jet.OLEDB.4.0;DATA SOURCE=" & "C:\PROVEVB\SPECIFICHE_IMPORT\gamma.mdb;")
Dim str1 As String = "select codice from anacf WHERE codice= " & TextBox1.Text & ""

With rst1
.ActiveConnection = cnn1
.Open(str1, , ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockOptimistic)
'.Open(str1, , ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockOptimistic)
End With
Dim int1 As Integer
For int1 = 0 To rst1.RecordCount - 1
cod = CStr(rst1(0).Value)

rst1.MoveNext()
Next
rst1.Close()
rst1 = Nothing
cnn1.Close()
cnn1 = Nothing

se ad esempio la stringa cod è 0 ottengo il messaggio di errore tipo cast non valido:
Sapete aiutarmi per forzare la lettura di stringhe con lunghezza 0?

Grazie

Matteo Agrizzi

alextyx Profilo | Expert

Per evitare questo problema hai due vie. Uno testare che ciò che stai leggendo non abbia valore DBNull, come sicuramente accade nel tuo caso. L'altro è, in Access, impostare il valore di default del campo="" cioè stringa vuota, che è ben diverso dal non scriverci niente, perchè se non ci scrivi esplicitamente di metterci una stringa vuota, il campo ha valore indefinito, cioè dbnull e ti viene fuori l'errore di cast!
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 !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5