Newsgroup: it.comp.lang.visual-basic
Titolo: [.NET] Query ad un DB, errore se un campo è vuoto!!

Ciao a tutti,
Ho creato questa function per effettuare delle query sui database access:
Private Function QueryDatabase(ByVal QuerySql As String) As DataSet
Dim Connessione As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & PercorsoArchivio & ";")
Connessione.Open()
Dim daDatabase As New OleDbDataAdapter(QuerySql, Connessione)
Dim dsDatabase As New DataSet
daDatabase.Fill(dsDatabase)
Connessione.Close()
Return daDatabase
End Function
"PercorsoArchivio" è una vartiabile globale che contiene il percorso del database access.
Richiamo la function per esempio con:
Dim RisultatoQuery As DataSet
RisultatoQuery = QueryDatabase(SELECT * FROM Tabella WHERE id = mia_condizione")
Il tutto funziona correttamente, ma quando invece richiamo i dati da una tabella in cui anche un solo campo è vuoto mi restituisce questo messaggio di errore al punto " daDatabase.Fill(dsDatabase)" :
Eccezione non gestita di tipo "System.Data.OleDb.OleDbException" in system.data.dll
Non riesco a capire il motivo, potete aiutarmi?
Grazie

 Eccezione non gestita di tipo "System.Data.OleDb.OleDbException" in
system.data.dll
Pollom...
Ti ho già detto una volta dove andare a reperire informazioni un po' più
dettagliate suglie errori di run time. Vorresti concedermi la grazia di
seguirle?
-- 
Salutoni
Sergio
..Nessun baol esiste.
Non sei mai esistito, Baol, se non nei nostri sogni.
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 seguirle?
Molto volentieri egr. sig. Bedrosian! :D
"DefaultDomain": caricato "c:\winnt4\
microsoft.net
\framework\v1.1.4322\mscorlib.dll", nessun simbolo caricato.
"progetto1": caricato "C:\MyPrograms\progetto1\bin\progetto1.exe", simboli caricati.
"progetto1.exe": caricato "c:\winnt4\assembly\gac\system.windows.forms\1.0.5000.0__b77a5c561934e089\system.windows.forms.dll", nessun simbolo caricato.
"progetto1.exe": caricato "c:\winnt4\assembly\gac\system\1.0.5000.0__b77a5c561934e089\system.dll", nessun simbolo caricato.
"progetto1.exe": caricato "c:\winnt4\assembly\gac\system.data\1.0.5000.0__b77a5c561934e089\system.data.dll", nessun simbolo caricato.
"progetto1.exe": caricato "c:\winnt4\assembly\gac\system.drawing\1.0.5000.0__b03f5f7f11d50a3a\system.drawing.dll", nessun simbolo caricato.
"progetto1.exe": caricato "c:\winnt4\assembly\gac\microsoft.visualbasic\7.0.5000.0__b03f5f7f11d50a3a\microsoft.visualbasic.dll", nessun simbolo caricato.
"progetto1.exe": caricato "c:\winnt4\assembly\gac\system.resources\1.0.5000.0_it_b77a5c561934e089\system.resources.dll", nessun simbolo caricato.
"progetto1.exe": caricato "c:\winnt4\assembly\gac\system.xml\1.0.5000.0__b77a5c561934e089\system.xml.dll", nessun simbolo caricato.
Eccezione non gestita di tipo "System.Data.OleDb.OleDbException" in system.data.dll
Eccezione non gestita: System.Data.OleDb.OleDbException: Tipi di dati non corrispondenti nell'espressione criterio.
   at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr)
   at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
   at progetto1.frmAvvio.QueryDatabase(String QuerySql) in C:\MyPrograms\progetto1\frmAvvio.vb:line 1355
   at progetto1.frmAvvio.AggiornaListViewUnita() in C:\MyPrograms\progetto1\frmAvvio.vb:line 1584
   at progetto1.frmAvvio.TreeViewCond_AfterSelect(Object sender, TreeViewEventArgs e) in C:\MyPrograms\progetto1\frmAvvio.vb:line 1313
   at System.Windows.Forms.TreeView.OnAfterSelect(TreeViewEventArgs e)
   at System.Windows.Forms.TreeView.TvnSelected(NMTREEVIEW* nmtv)
   at System.Windows.Forms.TreeView.WmNotify(Message& m)
   at System.Windows.Forms.TreeView.WndProc(Message& m)
   at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.SendMessage(HandleRef hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at System.Windows.Forms.Control.SendMessage(Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.Control.ReflectMessageInternal(IntPtr hWnd, Message& m)
   at System.Windows.Forms.Control.WmNotify(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at System.Windows.Forms.NativeWindow.DefWndProc(Message& m)
   at System.Windows.Forms.Control.DefWndProc(Message& m)
   at System.Windows.Forms.TreeView.WmMouseDown(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.TreeView.WndProc(Message& m)
   at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   at System.Windows.Forms.ComponentManager.System.Windows.Forms.UnsafeNativeMethods+IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.Run(Form mainForm)
   at progetto1.frmAvvio.Main() in C:\MyPrograms\progetto1\frmAvvio.vb:line 4
Il programma "[2284] progetto1.exe" terminato con il codice 0 (0x0).
Questo è quanto mi richiedevi??????

 Questo è quanto mi richiedevi??????
Solo la parte che ho quotato, ma meglio abbondare che il contrario.
E' sbagliata l'istruzione sql che stai usando per aprire la tabella: stai
usando in una clausola where un tipo di dato non congruente con quello
presente nel campo


 presente nel campo
Allora sono proprio scemo! Me lo dico da solo! Utilizzavo come filtro un
dato numerico da un campo di testo!
Perdono!