我正在努力将我的应用程序中的所有硬编码 SQL 语句更改为存储过程。但是当我运行它时,我收到错误“过程或函数StoredProcedure1
指定了太多参数”。这是我的SP:
ALTER PROCEDURE dbo.StoredProcedure1
(
@Nombreproceso varchar(MAX),
@AnalistaID int,
@Hallazgos varchar(MAX)
)
AS
insert into proceso (nombreProceso,analista_id,hallazgos) values (@Nombreproceso,@AnalistaID,@Hallazgos)
这是我的数据源:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
InsertCommand="StoredProcedure1" InsertCommandType="StoredProcedure"
SelectCommand="StoredProcedure1" SelectCommandType="StoredProcedure">
<InsertParameters>
<asp:FormParameter DefaultValue="a" FormField="nombreProcesoTextBox"
Name="Nombreproceso" Type="String" />
<asp:FormParameter DefaultValue="1" FormField="analista_idTextBox"
Name="AnalistaID" Type="Int32" />
<asp:FormParameter DefaultValue="aa" FormField="hallazgosTextBox"
Name="Hallazgos" Type="String" />
</InsertParameters>
<SelectParameters>
<asp:FormParameter DefaultValue="a" FormField="nombreProcesoTextBox"
Name="Nombreproceso" Type="String" />
<asp:FormParameter DefaultValue="1" FormField="analista_idTextBox"
Name="AnalistaID" Type="Int32" />
<asp:FormParameter DefaultValue="aa" FormField="hallazgosTextBox"
Name="Hallazgos" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
这是表格:
<asp:FormView ID="FormView_Proceso" runat="server" DataKeyNames="id"
DataSourceID="SqlDataSource1" DefaultMode="Insert" >
<InsertItemTemplate>
nombreProceso:
<asp:TextBox ID="nombreProcesoTextBox" runat="server"
Text='<%# Bind("nombreProceso") %>' />
analista_id:
<asp:TextBox ID="analista_idTextBox" runat="server"
Text='<%# Bind("analista_id") %>' />
hallazgos:
<asp:TextBox ID="hallazgosTextBox" runat="server"
Text='<%# Bind("hallazgos") %>' />
<asp:Button ID="InsertButton" runat="server" CausesValidation="True"
CommandName="Insert" Text="Insert" />
<asp:Button ID="InsertCancelButton" runat="server"
CausesValidation="False" CommandName="Cancel" Text="Cancel" />
</InsertItemTemplate>
</asp:FormView>
我不知道出了什么问题。任何帮助表示赞赏。