Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Renault 5 elettrica al giudizio definitivo: solo stupore iniziale o premi meritati?
Renault 5 elettrica al giudizio definitivo: solo stupore iniziale o premi meritati?
Dopo più di un anno dal primo test drive ci siamo rimessi al volante della Renault 5 E-Tech Electric, questa volta utilizzandola come prima auto per circa due settimane. Scoprite con noi se il progetto convince ancora
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
Un proiettore economico, che fa della portabilità e immediatezza i suoi punti di forza. Adatto per una camera da letto o per la casa vacanze, è basato su sistema proprietario Linux ma offre piena compatibilità ufficiale a Netflix
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
Un notebook sviluppato in collaborazione con GoPro ma che risponde al meglio alle necessità di tutti coloro che creano contenuti video: robustezza, design, potenza di calcolo e funzionalità si abbinano al meglio tra di loro, pur se a prezzo di un costo elevato per via della tanta memoria onboard
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-08-2010, 12:20   #1
ASSTO
Senior Member
 
Iscritto dal: Oct 2008
Messaggi: 365
[VB.NET] Dovrebbe funzionare, invece...problema query database

Quote:
Public Function estraiProveScatole(ByVal intestazione As String, ByVal commessa As String, ByVal specifica As String, ByVal conformita As String) As DataTable
Using conn As New OleDbConnection(My.Settings.myConnectionString)
Dim query As String
Dim da As New OleDbDataAdapter
Dim ds As New DataSet
Dim comando As New OleDbCommand

comando.Parameters.Add("@commessa", OleDbType.VarChar)
comando.Parameters("@commessa").Value = commessa

comando.Parameters.Add("@intestazione", OleDbType.VarChar)
comando.Parameters("@intestazione").Value = intestazione

comando.Parameters.Add("@specifica", OleDbType.VarChar)
comando.Parameters("@specifica").Value = specifica

Dim fCommessa As String = ""
Dim fIntestazione As String = ""
Dim fSpecifica As String = ""

If commessa.Length <> 0 Then
fCommessa = " =@commessa"
Else
fCommessa = " IS NOT NULL"
End If

If intestazione.Length <> 0 Then
fIntestazione = " =@intestazione"
Else
fIntestazione = " IS NOT NULL"
End If

If specifica.Length <> 0 Then
fSpecifica = " =@specifica"
Else
fSpecifica = " IS NOT NULL"
End If

query = "SELECT * FROM proveScatola WHERE intestazione" & fIntestazione & " AND specifica" & fSpecifica & " AND commessa" & fCommessa & " ORDER BY dataProva ASC"

My.Application.Log.WriteEntry(query)

comando.CommandText = query
comando.Connection = conn
da.SelectCommand = comando

da.Fill(ds, "tab1")

Return ds.Tables("tab1")

End Using
End Function
Questa funzione dovrebbe servirmi ad effettuare una query su un database e restituire una datatable. La funzione ha 4 parametri (il parametro conformita ancora non è stato implementato quindi di fatto è inutilizzato), i quali se passati vengono ricercati, altrimenti vengono sostituiti da "IS NOT NULL".

Il problema è che la ricerca restituisce i risultati corretti solo con il parametro commessa o senza nessun parametro (in questo caso restituisce l'intero recordset): se inserisco solo il parametro "specifica" o solo quello "intestazione" la datatable restituita è vuota.
Ho controllato:
1) i nomi delle righe nella query sono corretti
2) nella tabella del db esistono dei record contenenti i parametri che passo
3) i campi del database access sono tutti di tipo testo

La cosa molto strana è che ieri funzionava solo con il parametro intestazione. Poi ho riscritto il codice (non so se uguale ma sicuramente quello vecchio non era diametralmente diverso) ed ora funziona solo con il parametro commessa.

Vedete qualche cosa che non va?
__________________
Firma in sciopero!
ASSTO è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2010, 12:54   #2
ASSTO
Senior Member
 
Iscritto dal: Oct 2008
Messaggi: 365
Ho notato un'altra cosa. Ho un record set così composto:

Record 1
ID: 1
commessa: 1
specifica: 1
intestazione: franco

Record 2
ID: 2
commessa: 2
specifica: 2
intestazione: carlo

Se non passo nessun parametro, la datatable contiene entrambi i record (query: "SELECT * FROM proveScatola WHERE commessa IS NOT NULL AND specifica IS NOT NULL and intestazione IS NOT NULL")
Se passo il parametro commessa con valore "1", la dt contiene solo il record 1.
(query: "SELECT * FROM proveScatola WHERE commessa =@commessa AND specifica IS NOT NULL and intestazione IS NOT NULL")

Se passo il parametro intestazione con valore "franco", la dt è vuota.
(query: "SELECT * FROM proveScatola WHERE commessa IS NOT NULL AND specifica IS NOT NULL and intestazione =@intestazione")

Se passo i parametri commessa e intestazione con valori rispettivamente "1" e "franco", la dt contiene solo il record 1.
(query: "SELECT * FROM proveScatola WHERE commessa =@commessa AND specifica IS NOT NULL and intestazione =@intestazione")

Se passo i parametri commessa e intestazione con valori rispettivamente "1" e "carlo", la dt è giustamente vuota.

HELP!
__________________
Firma in sciopero!

Ultima modifica di ASSTO : 26-08-2010 alle 12:59.
ASSTO è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2010, 23:05   #3
ASSTO
Senior Member
 
Iscritto dal: Oct 2008
Messaggi: 365
Nessno ha idee su cosa controllare?
__________________
Firma in sciopero!
ASSTO è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2010, 21:44   #4
ASSTO
Senior Member
 
Iscritto dal: Oct 2008
Messaggi: 365
Eddai ragazzi...
__________________
Firma in sciopero!
ASSTO è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Renault 5 elettrica al giudizio definitivo: solo stupore iniziale o premi meritati? Renault 5 elettrica al giudizio definitivo: solo...
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix HONOR CHOICE Projector Air Pro: piccolo, portati...
ASUS ProArt GoPro Edition è il notebook compatto per chi crea ASUS ProArt GoPro Edition è il notebook c...
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
Cos'è il dynamic patching, così Chrome v...
Acquisto di libri fisici per l'addestram...
OpenAI taglia i prezzi di due modelli GP...
RTX Spark pronto a dominare anche i tabl...
Il primo telefono davvero senza bordi no...
DeepSeek V4-Flash, API in beta pubblica:...
La crisi delle memorie continuerà: ecco ...
Dati su disfunzione erettile e perdita d...
Arriva e-invoice, il servizio di fiskaly...
Champions League, F1 e MotoGP: ecco la p...
Amazon alza a 220 miliardi le stime sugl...
World of Warcraft e Dungeons & Drago...
AXOL Server ridisegna l'infrastruttura d...
MSI ha ucciso AMD EXPO ULL? High-Efficie...
Falso Portale dell'Automobilista ruba pa...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 07:30.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v