如何在sqlDataSource的select参数中使用数据绑定?
How to use data binding in select parameter of sqlDataSource?
我有一个 sqlDataSource,我在其中使用 select 参数,如下所示:
<asp:sqlDataSource ID="EmployeeDetailsSqlDataSource"
SelectCommand="SELECT EmployeeID, LastName, FirstName FROM Employees WHERE EmployeeID = @EmpID"
ConnectionString="<%$ ConnectionStrings:NorthwindConnection %>" RunAt="server">
<SelectParameters>
<asp:Parameter Name="EmpID" Type="Int32" DefaultValue="<%#userid%>" />
</SelectParameters>
</asp:sqlDataSource>
在我的后台代码中,我给userId赋了一个值,还写了this.DataBind();
数据绑定无效。有谁知道解决这个问题的方法吗?
一种方法是在 Page_Load 事件后面的代码中或绑定变量后使用 userid 变量设置值。
//set SqlDataSource parameters value with empID as your variable
EmployeeDetailsSqlDataSource.SelectParameters.Add("@EmpID", userID);
Asp:
<asp:sqlDataSource ID="EmployeeDetailsSqlDataSource"
SelectCommand="SELECT EmployeeID, LastName, FirstName FROM Employees WHERE EmployeeID = @EmpID"
RunAt="server">
<SelectParameters>
<asp:Parameter Name="EmpID" Type="Int32" DefaultValue="0" />
</SelectParameters>
</asp:sqlDataSource>
另一种选择是在数据检索之前发生的选择事件中设置来自代码的值。
这里有一个link更完整的例子Full Example
<asp:sqlDataSource ID="EmployeeDetailsSqlDataSource"
SelectCommand="SELECT EmployeeID, LastName, FirstName FROM Employees WHERE EmployeeID = @EmpID"
RunAt="server" OnSelecting=OnSelectingHandler">
<SelectParameters>
<asp:Parameter Name="EmpID" Type="Int32" DefaultValue="0" />
</SelectParameters>
</asp:sqlDataSource>
后面的代码:
Public void OnSelectingHandler(object sender, SqlDataSourceSelectingEventArgs e)
{
e.Command.Parameters[0].Value=userID;
}
我有一个 sqlDataSource,我在其中使用 select 参数,如下所示:
<asp:sqlDataSource ID="EmployeeDetailsSqlDataSource"
SelectCommand="SELECT EmployeeID, LastName, FirstName FROM Employees WHERE EmployeeID = @EmpID"
ConnectionString="<%$ ConnectionStrings:NorthwindConnection %>" RunAt="server">
<SelectParameters>
<asp:Parameter Name="EmpID" Type="Int32" DefaultValue="<%#userid%>" />
</SelectParameters>
</asp:sqlDataSource>
在我的后台代码中,我给userId赋了一个值,还写了this.DataBind();
数据绑定无效。有谁知道解决这个问题的方法吗?
一种方法是在 Page_Load 事件后面的代码中或绑定变量后使用 userid 变量设置值。
//set SqlDataSource parameters value with empID as your variable
EmployeeDetailsSqlDataSource.SelectParameters.Add("@EmpID", userID);
Asp:
<asp:sqlDataSource ID="EmployeeDetailsSqlDataSource"
SelectCommand="SELECT EmployeeID, LastName, FirstName FROM Employees WHERE EmployeeID = @EmpID"
RunAt="server">
<SelectParameters>
<asp:Parameter Name="EmpID" Type="Int32" DefaultValue="0" />
</SelectParameters>
</asp:sqlDataSource>
另一种选择是在数据检索之前发生的选择事件中设置来自代码的值。
这里有一个link更完整的例子Full Example
<asp:sqlDataSource ID="EmployeeDetailsSqlDataSource"
SelectCommand="SELECT EmployeeID, LastName, FirstName FROM Employees WHERE EmployeeID = @EmpID"
RunAt="server" OnSelecting=OnSelectingHandler">
<SelectParameters>
<asp:Parameter Name="EmpID" Type="Int32" DefaultValue="0" />
</SelectParameters>
</asp:sqlDataSource>
后面的代码:
Public void OnSelectingHandler(object sender, SqlDataSourceSelectingEventArgs e)
{
e.Command.Parameters[0].Value=userID;
}