我有一个存储过程,它结合了两个表的值。这是存储过程:
ALTER PROCEDURE dbo.SplitTime
@time nvarchar(50),
@classid nvarchar(50)
AS
/* SET NOCOUNT ON */
DECLARE @delimiter char(1)
DECLARE @index INT
DECLARE @value nvarchar(4000)
SET @index = 1
SET @delimiter='-'
WHILE @index != 0
BEGIN
SELECT @index = CHARINDEX(@Delimiter,LTRIM(@time))
IF @index !=0
SELECT @value = LTRIM(LEFT(@time,@index - 1))
ELSE
SELECT @value = LTRIM(@time)
SET @value = LTRIM(RTRIM(@value))
IF @value <> ''
INSERT into StartEndTimes(times,ID) values(LTRIM(@value),@classid)
SELECT @time =LTRIM(RIGHT(@time,LEN(@time) - @index))
IF LEN(@time) = 0 BREAK
END
SELECT * from StartEndTimes,ClassInfo
所以,基本上我将格式为6:00 - 9:00的时间拆分并存储在另一个表中。现在,我需要将此存储过程分配给asp.net中的sqldatasource。但我不确定如何发送参数。这两个参数都来自ClassInfo表。你能帮我么?
答案 0 :(得分:0)
查看http://www.4guysfromrolla.com/articles/050207-1.aspx,其中介绍了使用ASP.NET数据源的一些基础知识。
但是,从存储过程看,您希望将两个参数传递给过程,该过程将插入数据库然后返回结果?如果是这样,那似乎不是你想要做的事情,应该把它分成插入和另一个单独的选择。
无论如何,如果你想将两个参数传递给SqlDataSource进行插入,你可以做类似的事情
<asp:SqlDataSource ID="MyCommand" runat="server" ConnectionString="Your connection string"
InsertCommand="SplitTimes" InsertCommandType="StoredProcedure">
<InsertParameters>
<asp:Parameter Name="time" PropertyName="String" />
<asp:Parameter Name="classid" PropertyName="String" />
</InsertParameters>
</asp:SqlDataSource>
你需要做更多的工作并让这个控件与表单一起使用,但这就是它的主旨。