2011-09-08 38 views
0

我有一个存储过程,它组合了2个表中的值。这是存储过程:存储过程到SQL数据源

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

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

你需要做更多的工作,并得到这个控制有形式合作,但这是它的主题。