PDA

View Full Version : [SQLite/C#] Non riesco a passare la giusta query: problemi di stringhe


alex783
06-11-2009, 17:08
Allora... ho un database SQLite3 a due colonne e millemila righe e questo è il mio codice:

foreach (FileInfo currentFileOnDisk in FileList)
{
string item=currentFileOnDisk.FullName.Replace(mailclientsClass.thunderbirdProfilePath, "ThunderbirdProfile");
item = "\"" + item + "\"";

string myQuery= "SELECT * FROM ZipEntries WHERE Name=" + item + ";";
//string myQuery= "SELECT * FROM ZipEntries WHERE Name=\"ThunderbirdProfile/Application Registry\";";
DataTable prova = db.ExecuteQuery(myQuery);
MessageBox.Show(prova.Rows[0].ItemArray.GetValue(0).ToString()); }

Perché se la stringa myQuery è uguale a "SELECT * FROM ZipEntries WHERE Name=\"ThunderbirdProfile/Application Registry\";", il mio codice funziona (ritornando correttamente il valore della cella[0;0], mentre se è invece uguale a "SELECT * FROM ZipEntries WHERE Name=" + item + ";", non funziona più nulla?

Ma non sono identiche queste due stringhe?! :muro: :stordita:

Chi mi può aiutare? Thanks!

P.S:
la variabile item nel codice è uguale proprio a "ThunderbirdProfile/Application Registry"

alex783
06-11-2009, 17:13
Risolto! :sofico:
Il problema è nel verso del carattere "/" che separa i percorsi delle cartelle.

In item è così "\", ovvero quello utilizzato da Windows, mentre nel database è memorizzato come "/", in stile Unix. ;)