我有一个存储过程,它组合了来自两个表的值。这是存储过程:
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表。你能帮帮我吗?
看看https://web.archive.org/web/20211020133929/https://www.4guysfromrolla.com/articles/050207-1.aspx,它涵盖了一些使用ASP的基础知识。净数据源。
然而,从您的存储过程来看,您想要传递两个参数到过程,它插入到数据库,然后返回结果?如果是这样的话,你应该把它分成insert和select两部分。
无论如何,如果您希望向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>
您需要做更多的工作,使这个控件与表单一起工作,但这就是它的目的。