c# asp.net 2.0 tableadapter 动态 dynamic sql语句

多条件搜索页面,如果每个都写,5个条件,那就是25个add query,10个就是100个add query

TableAdapter 可以公开两类方法:适合用于填充现有 DataSet Fill 方法和返回已填充的 DataTable 对象的 Get 方法。前者更适合用于 Windows 客户端(其中 DataSet 在应用程序的生存期内保存在内存中),而后者(即 Get 方法)更适合用于 ObjectDataSource

新建类文件一个:(作用:添加tableadapter原始文件,添加所需要的类)
namespace FernandoTableAdapters
{
    public partial class OutRegisterTableAdapter
    {
        public virtual Fernando.OutRegisterDataTable GetDataBySearch(string searchSql)
        {
            this.Adapter.SelectCommand = new System.Data.OleDb.OleDbCommand(searchSql, this.Connection);
            Fernando.OutRegisterDataTable dataTable = new Fernando.OutRegisterDataTable();
            this.Adapter.Fill(dataTable);
            return dataTable;
        }
    }
}

然后就和原来的操作一样,打开类文件,添加方法:
    [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]
    public Fernando.OutRegisterDataTable GetOutRegisterBySearch(string searchSql)
    {
        return Adapter.GetDataBySearch(searchSql);
    }


最后进入页面:

    <asp:ObjectDataSource ID="OutRegisterDataSource" runat="server" SelectMethod="GetOutRegisterBySearch"
        TypeName="OutRegister" OldValuesParameterFormatString="original_{0}" DeleteMethod="DeleteOutRegister"
        UpdateMethod="LogOutOutRegister">
        <SelectParameters>
            <asp:Parameter Name="searchSql" Type="String" DefaultValue="SELECT * from OutRegister" />
        </SelectParameters>
        <DeleteParameters>
            <asp:Parameter Name="outRegisterID" Type="Int32" />
        </DeleteParameters>
        <UpdateParameters>
            <asp:Parameter Name="outRegisterID" Type="Int32" />
        </UpdateParameters>
    </asp:ObjectDataSource>

进入cs文件:
    protected void Button3_Click(object sender, EventArgs e)
    {
        string searchSql = "SELECT * from OutRegister where OutRegisterID=2";
        OutRegisterDataSource.SelectParameters["searchSql"].DefaultValue = searchSql;
    }

posted @ 2007-12-23 00:56  Fernando  阅读(884)  评论(0编辑  收藏  举报