【问题标题】:ObjectDataSource.SelectMethod equivalent in SqlDataSourceSqlDataSource 中的 ObjectDataSource.SelectMethod 等效项
【发布时间】:2011-05-24 11:56:06
【问题描述】:

在 ObjectDataSource 中,我们有一个名为 SelectMethod 和 TypeName 的方法,我们可以在其中指定一个从中选择数据的方法。

但是 SqlDataSource 中指定数据选择方法的等效方法是什么。如果没有这样的方法,我该如何指定一个方法来选择像 ObjectDataSource 中的数据

<asp:ObjectDataSource ID="ObjEmployees" runat="server" 
        SelectMethod="GetEmployees" TypeName="AllowPaging.GetData">
</asp:ObjectDataSource>

SqlConnection connection = new SqlConnection("server=NIPUNA-PC\\SQLEXPRESS; database=KTD; Trusted_Connection=yes;");
    string commandText = "SELECT * FROM [Emp]";
    public DataSet GetEmployees()
    {
        SqlCommand cmd = new SqlCommand(commandText, connection);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        da.Fill(ds);

        return ds;
    }

【问题讨论】:

    标签: asp.net objectdatasource sqldatasource


    【解决方案1】:

    看到这个:http://www.4guysfromrolla.com/articles/112206-1.aspx

    SqlDataSource 和 ObjectDataSource 在执行 SQL 查询或调用对象方法检索数据之前立即引发它们的 Selecting 事件。检索数据后,将触发 Selected 事件。通过创建 Selecting 事件处理程序,您可以检查和调整用于选择数据的参数;

    您可以使用这些事件处理程序来指定数据源控件使用哪种方法。

    【讨论】:

    • 感谢幕后概述和链接。我期待尽快完成这个系列......
    【解决方案2】:

    在 SqlDataSource 中,它等价于 SelectCommand。您可以提供 Select 查询并将 SelectCommandType 设置为 Text(默认)或使用存储过程并将 SelectCommandType 设置为 StoredProcedure

    【讨论】:

    • 我知道,但我想像在 objectDataSource 中一样指定一个方法。 (像上面的 getEmployee 方法)有可能吗?
    • 嗯,他们是两个不同的数据源提供者。对象有方法;对于数据库,您必须使用 sql 查询或存储过程。
    【解决方案3】:

    SQL 数据源执行 SQL 内联,因此没有等效的方法来调用对象的方法。您必须使用 SeelctCommand 直接在 UI 中提供 SQL 查询。

    如果您使用业务组件来执行查询,请坚持使用 ObjectDataSource。

    HTH。

    【讨论】:

    • 是的,在谷歌搜索了 SqlDataSource 和 ObjectDataSource 之间的区别之后,我认为我最好继续使用 ObjectDataSource。谢谢!!
    猜你喜欢
    • 1970-01-01
    • 2013-12-16
    • 2018-06-25
    • 2015-07-09
    • 2017-10-24
    • 2014-07-04
    • 2010-09-20
    • 2021-06-21
    • 2012-12-10
    相关资源
    最近更新 更多