这会奏效。
SelectCommand="SELECT [CompanyName], [Country] FROM [Customers] WHERE ([Country] = ?)">
<SelectParameters>
<asp:Parameter DefaultValue="Mexico" Name="Country" Type="String" />
</SelectParameters>
但这不起作用。它会在“''附近给出”不正确的语法。“错误信息。
SelectCommand="EXEC Docs.[DocumentList] @UserName = ?, @Service = ?, @YearGroup = ?, @Category = ?">
<SelectParameters>
<asp:Parameter DefaultValue="8882074" Name="UserName" />
<asp:Parameter DefaultValue="9" Name="Service" />
<asp:Parameter DefaultValue="1" Name="YearGroup" />
<asp:Parameter DefaultValue="1" Name="Category" />
</SelectParameters>
这也不起作用。
<asp:SqlDataSource ID="ListViewSqlDataSource" runat="server"
ConnectionString="<%$ *** %>"
SelectCommand="EXEC [Docs].[CategoryList]" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:Parameter DefaultValue="8882074" Name="UserName" />
<asp:Parameter DefaultValue="9" Name="Service" />
</SelectParameters>
</asp:SqlDataSource>
给我这个错误。 msgstr“”“找不到存储过程''。”“”
但是将selectcommand更改为this可以正常工作。
SelectCommand="EXEC [Docs].[CategoryList] @UserName = 8882074, @Service = 9"
那么在执行存储过程时如何传递参数?感谢。
答案 0 :(得分:1)
如果要调用存储过程,则应该:
SelectCommand
设置为仅存储过程名称SelectCommandType
设置为SelectCommandType.StoredProcedure
有了这个,所有通常的参数东西都像以前一样工作!
SelectCommand="Docs.[DocumentList]" SelectCommandType="StoredProcedure"
更新: SelectCommand
应 JUST 存储的proc名称!没有EXEC
或其他任何......
试试这个:
<asp:SqlDataSource ID="ListViewSqlDataSource" runat="server"
ConnectionString="<%$ *** %>"
SelectCommand="[Docs].[CategoryList]" **JUST THE STORED PROC NAME !!**
SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:Parameter DefaultValue="8882074" Name="UserName" />
<asp:Parameter DefaultValue="9" Name="Service" />
</SelectParameters>
</asp:SqlDataSource>