Sql C类查询不起作用
有人能帮我吗?我通常不在C语言工作,所以我很抱歉。我有以下可以使用的查询,但需要将store.Zip查找更改为LIKE而不是=。当我尝试将=更改为LIKE并在{0}之后添加%时,它会编译,但不会运行。数据库是Sql Server 2008:Sql C类查询不起作用,sql,nhibernate,Sql,Nhibernate,有人能帮我吗?我通常不在C语言工作,所以我很抱歉。我有以下可以使用的查询,但需要将store.Zip查找更改为LIKE而不是=。当我尝试将=更改为LIKE并在{0}之后添加%时,它会编译,但不会运行。数据库是Sql Server 2008: public List<Store> DoesStoreExist(string customerNumber, string zipCode) { StringBuilder sb = new StringBuilder();
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;
}
谢谢 试试这个
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");
}
这应该起作用:
sb.appendformatandstore.Zip类似于{0}%',zipCode 如果超时,则需要增加命令超时时间。假设您的实体对象名为“db”,请在c代码中执行查询之前执行此操作
db.CommandTimeout = 300;
超时时间以秒为单位 您遇到了什么错误?是否尝试将.Zip存储为“{0}%”,zipCode;?另外,我在任何地方都看不到like?你能用like发布你的查询吗?你的代码也容易受到SQL注入的攻击。使用参数进行研究。我要做的是处理zip+4,有时最后四位数字不在数据库中。谢谢看看我的答案,我假设您从SQL数据库获得超时异常。您还没有提到收到的错误消息。
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");
}
db.CommandTimeout = 300;