Quelqu'un pourrait-il m'aider? Je ne travaille pas normalement en C#, alors mes excuses. J'ai la requête suivante qui fonctionne, mais besoin de changer la recherche store.Zip à un LIKE
au lieu de =
. Lorsque j'essaie simplement de changer le =
en LIKE
et d'ajouter %
après {0}
il compile, mais ne fonctionne pas. La base de données est Sql Server 2008:La requête C# LIKE ne fonctionne pas
public List<Store> DoesStoreExist(string customerNumber, string zipCode) {
StringBuilder sb = new StringBuilder();
sb.Append("SELECT id, Company, CustomerNumber, Name, Address, City, State, Zip, Phone, Latitude, Longitude, NumOfReferrals, IsNashville, PredsPromotionParticipant ");
sb.Append("FROM dbo.Stores store ");
sb.AppendFormat("WHERE store.CustomerNumber='{0}' ", customerNumber);
sb.AppendFormat("AND store.Zip ='{0}' ", zipCode);
sb.AppendFormat("AND store.Locator=1");
IQuery query = NHibernateSession.CreateSQLQuery(sb.ToString());
IList results = query.List();
List<Store> stores = new List<Store>();
foreach (object result in results) {
object[] result_arr = result as object[];
if (result_arr != null) stores.Add(Store.From(result_arr));
}
return stores;
}
Même juste changer le « = » à « LIKE » provoque la requête de ne pas retourner:
public List<Store> DoesStoreExist(string customerNumber, string zipCode)
{
StringBuilder sb = new StringBuilder();
sb.Append("SELECT id, Company, CustomerNumber, Name, Address, City, State, Zip, Phone, Latitude, Longitude, NumOfReferrals, IsNashville, PredsPromotionParticipant ");
sb.Append("FROM dbo.Stores store ");
sb.AppendFormat("WHERE store.CustomerNumber='{0}' ", customerNumber);
sb.AppendFormat("AND store.Zip LIKE '{0}%' ", zipCode);
sb.AppendFormat("AND store.Locator=1");
IQuery query = NHibernateSession.CreateSQLQuery(sb.ToString());
IList results = query.List();
List<Store> stores = new List<Store>();
foreach (object result in results) {
object[] result_arr = result as object[];
if (result_arr != null) stores.Add(Store.From(result_arr));
}
return stores;
}
Quand je lance la suivante sur la base de données directement, il œuvres:
SELECT * FROM [StoreDB].[dbo].[Stores]WHERE Zip LIKE '33815%'
Merci!
Quelle erreur obtenez-vous? – SLaks
Le fait qu'il ne s'exécute pas est un problème SQL, pas C# - la requête semble très bien. Je risquerais de deviner que l'entrée est erronée et que vous n'obtiendrez aucune correspondance de la part de la base de données. – James
Quelle est l'erreur? Quelle est la valeur de 'customerNumber'? –