存储过程到SQL DataSource

时间:2011-09-08 21:02:16

标签: asp.net stored-procedures

我有一个存储过程,它结合了两个表的值。这是存储过程:

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表。你能帮我么?

1 个答案:

答案 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>

你需要做更多的工作并让这个控件与表单一起使用,但这就是它的主旨。