当前位置:编程学习 > C#/ASP.NET >>

问一linq调用存储过程 sql语句拼接问题

string stprice = "i.金额>0 and i.金额<500";//金额,价格预算

Ritem.DataSource = dw.selectItembyevry(stprice);//linq调用存储过程
Ritem.DataBind();

存储过程:
ALTER PROCEDURE [dbo].[selectItembyevry]

@price nvarchar(500)
AS
--declare @stsql nvarchar(4000)


BEGIN
declare @stsql nvarchar(4000)
--declare @price2 nvarchar(500)
--set @price2='i.金额>0 and i.金额<500'
set @stsql='select i.[Id]      ,i.[项目分类]      ,i.[项目名称]      ,i.[地区]      ,i.[行业]
      ,i.[金额]      ,i.[方式]      ,i.[回报]      ,i.[期限]      ,i.[详细内容]      ,i.[资产性质]
      ,i.[资产状态]      ,i.[资产评估]      ,i.[用户提交时间]      ,i.[入本地库时间]
      ,i.[客服修改时间]      ,i.[是否已入本地库]      ,i.[UserId]      ,i.[是否已生成静态页并推送]
      ,ica.CaName,fm.方式名称,indu.行业名称
      ,c.城市名 from Items I, ItemCa ica, City c, FinancingMode fm, Industry indu where
       i.项目分类=ica.CaId and i.地区=c.城市Id and i.方式=fm.方式Id and indu.行业Id=i.行业 and i.是否自营项目=0 and '
       --i.金额>0 and i.金额<500
       
       --print @stsql
       set @stsql=@stsql+@price
       exec(@stsql)
END

运行提示:Ritem 使用的是无效数据源。有效数据源必须实现 IListSource 或 IEnumerable。求帮助 --------------------编程问答-------------------- 你单独执行存储过程,能够查询出数据源吗?

其实你的 参数传入条件表达式,还不如传入两个参数值,如果改为两个参数就不容易出错 --------------------编程问答-------------------- BEGIN
declare @stsql nvarchar(4000)
declare @price2 nvarchar(500)
set @price2='i.金额>0 and i.金额<500'
set @stsql='select i.[Id]      ,i.[项目分类]      ,i.[项目名称]      ,i.[地区]      ,i.[行业]
      ,i.[金额]      ,i.[方式]      ,i.[回报]      ,i.[期限]      ,i.[详细内容]      ,i.[资产性质]
      ,i.[资产状态]      ,i.[资产评估]      ,i.[用户提交时间]      ,i.[入本地库时间]
      ,i.[客服修改时间]      ,i.[是否已入本地库]      ,i.[UserId]      ,i.[是否已生成静态页并推送]
      ,ica.CaName,fm.方式名称,indu.行业名称
      ,c.城市名 from Items I, ItemCa ica, City c, FinancingMode fm, Industry indu where
       i.项目分类=ica.CaId and i.地区=c.城市Id and i.方式=fm.方式Id and indu.行业Id=i.行业 and i.是否自营项目=0 and '
       --i.金额>0 and i.金额<500
       
       --print @stsql
       set @stsql=@stsql+@price2
       exec(@stsql)
END

如果改成以上语句,是可以直接查出数据的。运行没有问题。我传两个参数是为了动态传条件参数啊
补充:.NET技术 ,  LINQ
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,