-4

誰か助けてくれませんか?私は通常 C# で作業していないので、申し訳ありません。動作する次のクエリがありますが、store.Zip ルックアップをLIKEではなく に変更する必要があり=ます。=toを変更してコンパイル後にLIKE追加しようとすると、実行されません。データベースは Sql Server 2008 です。%{0}

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;

}

「=」を「LIKE」に変更するだけでも、クエリは返されません。

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;
}

データベースに対して直接次を実行すると、機能します。

SELECT * FROM [StoreDB].[dbo].[Stores]WHERE Zip LIKE '33815%'

ありがとう!

4

3 に答える 3

0

これを試して

    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");
    }
于 2013-07-08T13:28:54.707 に答える