各位高手,情况是这样的:
我在一个ASP.NET页面中调用存储过程Pr_QueryDocument,需要返回一个记录集。
存储过程简化如下:
ALTER PROCEDURE [dbo].[Pr_QueryDocument]
@CategoryID int,
@SN varchar(200),
@Name varchar(200),
@sDate varchar(50),
@eDate varchar(50),
@Sender varchar(200),
@SavePlace varchar(50),
@Cabinet int,
@Status int
ASBegin
Declare @Sel As varchar(400)
Set @Sel = 'Selcet * From Document'
Exec(@Sel)
End
其中最后一句改成 Exec sp_execute @Sel也无法返回值。
但是如果直接写成:
ALTER PROCEDURE [dbo].[Pr_QueryDocument]
@CategoryID int,
@SN varchar(200),
@Name varchar(200),
@sDate varchar(50),
@eDate varchar(50),
@Sender varchar(200),
@SavePlace varchar(50),
@Cabinet int,
@Status int
ASBegin
Selcet * From Document
End
又能返回值请问这是怎么回事呢??
上面中的参数,为了测试暂时没有写入到Select中。因为这个过程是动态查询档案的,所以无法像第二种方法那样直接写查询语句。
在下在这里静候各位高手指导,不吝赐教啊!!
我在一个ASP.NET页面中调用存储过程Pr_QueryDocument,需要返回一个记录集。
存储过程简化如下:
ALTER PROCEDURE [dbo].[Pr_QueryDocument]
@CategoryID int,
@SN varchar(200),
@Name varchar(200),
@sDate varchar(50),
@eDate varchar(50),
@Sender varchar(200),
@SavePlace varchar(50),
@Cabinet int,
@Status int
ASBegin
Declare @Sel As varchar(400)
Set @Sel = 'Selcet * From Document'
Exec(@Sel)
End
其中最后一句改成 Exec sp_execute @Sel也无法返回值。
但是如果直接写成:
ALTER PROCEDURE [dbo].[Pr_QueryDocument]
@CategoryID int,
@SN varchar(200),
@Name varchar(200),
@sDate varchar(50),
@eDate varchar(50),
@Sender varchar(200),
@SavePlace varchar(50),
@Cabinet int,
@Status int
ASBegin
Selcet * From Document
End
又能返回值请问这是怎么回事呢??
上面中的参数,为了测试暂时没有写入到Select中。因为这个过程是动态查询档案的,所以无法像第二种方法那样直接写查询语句。
在下在这里静候各位高手指导,不吝赐教啊!!
错误就是dr.Read():
while(dr.Read())
{ ..... }
Declare @Sel As string(400)
Set @Sel = N'Selcet * From Document'
Exec(@Sel)
End
Declare @Sel As string(400)
Set @Sel = N'Selcet * From Document'
Exec(@Sel)
End在'Select × From Document'前面加上“N”后,就正常出来了
请问一下加的这个"N"是什么意思呢?(偶是新手,问的很初级)另:我将其中一个参数加上后,又不行了:
Set @Sel = N'Selcet * From Document' + N'Where CategoryID = ' + @CategoryID
Exec(@Sel)
又没有返回了
Set @Sel = N'Selcet * From Document' + N'Where CategoryID = ' + @CategoryID
--Where前面要用空格吧
Set @Sel = N'Selcet * From Document' + N' Where CategoryID = ' + @CategoryID
Set @Sel = N'Selcet * From Document' + N' Where CategoryID = ' + @CategoryIDwhere前面加上空格之后还是不行
为了怕是 @CategoryID的值没有传过来,我直接赋值也不行:
Set @Sel = N'Selcet * From Document' + N' Where CategoryID = ' + 7
确实是需要在前面加一个N才可以
但是Set @Sel=N'Select * From Document Where Doc_SN like '%' + N'd' + N'%''在这个语句里,like后面的%%前后需要加上单引号''
那么单引号怎么添加呢?好像不是在单引号前面用\
那应该用什么呢?