繁体   English   中英

存储过程到SQL DataSource

[英]stored procedure to SQL DataSource

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

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

看一下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>

您将需要做更多的工作,并使此控件与表单一起使用,但这只是它的精髓。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM