我有以下问题。我从数据库中检索具有指定值的业务。字段businessno
是整数的类型。以下是代码
ObjectQuery<BUSINESS> q_business =
_context.BUSINESS.Include("CUSTOMSOFFICE").Where(
"it.BUSINESSNO=" + int.Parse(pv_businessno)).Where(
string.Format("(it.BUSINESSSTART >= DATETIME'{0:yyyy-MM-dd HH:mm}')
and (it.BUSINESSSTART <= DATETIME'{1:yyyy-MM-dd HH:mm}')",
pv_sdate, pv_edate));
然而,用户需要提供一个值并从businessno
数据库中检索数据,就像该值一样。
我搜索互联网,最后重写代码如下。除非提供businessno
的完整值,否则此代码不会检索任何记录。
ObjectQuery<BUSINESS> q_business =
_context.BUSINESS.Where(
"CAST(it.BUSINESSNO as System.String) like @abc", new ObjectParameter("abc", busno)).Where(
string.Format("(it.BUSINESSSTART >= DATETIME'{0:yyyy-MM-dd HH:mm}')
and (it.BUSINESSSTART <= DATETIME'{1:yyyy-MM-dd HH:mm}')",
pv_sdate, pv_edate));
我的问题是如何将数字转换为字符串。
答案 0 :(得分:0)
使用SqlFunctions.StringConvert方法将整数转换为服务器端的字符串。
ObjectQuery<BUSINESS> q_business =
from b in _context.BUSINESS
where SqlFunctions.StringConvert((double)b.BUSINESSNO).Contains(busno) &&
b.BUSINESSSTART >= pv_sdate &&
b.BUSINESSSTART <= pv_edate
select b;