我有一个 sqlDataSource,其中使用如下所示的选择参数:
<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();
数据绑定(bind)不起作用。有谁知道这个问题的解决方案吗?
最佳答案
一种方法是仅在 Page_Load 事件后面的代码中或在绑定(bind)变量之后使用 userid 变量设置值。
//set SqlDataSource parameters value with empID as your variable
EmployeeDetailsSqlDataSource.SelectParameters.Add("@EmpID", userID);
天冬氨酸:
<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>
另一个选项是在数据检索之前发生的选择事件中设置代码值。
<强> SqlDataSource.Selecting Event
这是一个更完整示例的链接 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;
}
关于c# - 如何在sqlDataSource的select参数中使用数据绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30458011/