第一種情況:查詢條件是固定的
下面以SelectCommand為例進行說明
建立的SqlDataSource如下:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:WHGDTempConnectionString %>"
SelectCommand="SELECT [ID], [TVNum], [HostName], [TerminalNum], [Addr] FROM [AddrInfo] WHERE ([ID] = @ID)">
<SelectParameters>
<asp:Parameter DefaultValue="1" Name="ID" Type="Decimal" />
</SelectParameters>
</asp:SqlDataSource>
在程式中運行時給ID參數賦值如下:
this.SqlDataSource1.SelectParameters["ID"].DefaultValue = "2";//這個就是給參數的指派陳述式
this.SqlDataSource1.DataBind();
this.GridView1.DataBind();
第二種情況:查詢條件是隨機變化的,動態增減;這時需要在後台構造Sqldatasource的selectcommand。這種情況下需要如下操作:
第一步:清空SqlDataSource的SelectParameters
this.SqlDataSource1.SelectParameters.Clear();
第二步:構造SelectCommand,並給selectparameters增加參數並賦值
string Sqlstr = "SELECT * FROM [butabel] WHERE ";
if (TextBox2.Text != "" && TextBox2.Text.Trim() != "")
{
Sqlstr = Sqlstr + " ([circuitvB] LIKE '%' + @circuitvB + '%') and ";
//下面這是給Sqldatasource增加 SelectParameters參數並賦值 this.SqlDataSource1.SelectParameters.Add("circuitvB", System.TypeCode.String, TextBox2.Text.Trim());
}
後記:如果涉及到Gridview的分頁、排序、編輯需要給相應的函數中添加查詢函數。例如:
protected void GridView1_PageIndexChanging1(object sender, GridViewPageEventArgs e) { searchFuc(); }
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) { searchFuc();}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { searchFuc();}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { searchFuc();}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) {searchFuc();}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { searchFuc(); }