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;
}