2011-09-08 39 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> 

你需要做更多的工作,並得到這個控制有形式合作,但這是它的主題。