【问题标题】:SqlDatasource select parametersSqlDatasource 选择参数
【发布时间】:2011-12-14 09:01:40
【问题描述】:

这是我的 sql 数据源详细信息

  <asp:SqlDataSource ID="dsMoodleQuiz" runat="server" 
    ConnectionString="<%$ ConnectionStrings:OnlineMeetingConnectionString %>" 
    ProviderName="<%$ ConnectionStrings:OnlineMeetingConnectionString.ProviderName %>" 

    SelectCommand="SELECT Name, UserID, Grade, FirstName, LastName, Email, TimeModified, IDNumber FROM tbMoodleQuiz WHERE (FirstName = @FirstName) AND (LastName = @LastName)" 
    onselecting="dsMoodleQuiz_Selecting">
    <SelectParameters>
        <asp:Parameter Name="FirstName" />
        <asp:Parameter Name="LastName" />
    </SelectParameters>
</asp:SqlDataSource>

名称为 gvDetails 的网格视图附加到 dsMoodleQuiz 。在button click 我想要

gridview 得到填充。

这是点击按钮的代码

 protected void btnSearch_Click(object sender, EventArgs e)
 {
    dsMoodleQuiz.SelectParameters.Add("@FirstName", System.Data.DbType.String, "Jhon");
    dsMoodleQuiz.SelectParameters.Add("@LastName", System.Data.DbType.String, "Wald");

    GridView1.DataBind();
}

为什么这不起作用...??我是否缺少任何代码...??感谢帮助

【问题讨论】:

    标签: gridview sqldatasource sqlparameter


    【解决方案1】:

    在databaindg中使用以下代码

    dsMoodleQuiz.SelectParmeter['FirstName'].DefaultValue = 'John';
    dsMoodleQuiz.SelectParmeter['LastName'].DefaultValue = 'Wald';
    
    gridView1.DataBind();
    

    注意:我没有Visual Studio,所以代码不可复制,不可粘贴。

    【讨论】:

      【解决方案2】:

      这是有关如何使用 sqldatasource 搜索网格视图并根据该搜索条件填充结果的示例示例.....

      网格视图绑定.....

           <asp:GridView ID="Gridview1" runat="server" AutoGenerateColumns="False" AllowPaging="True"
      AllowSorting="true" DataSourceID="dsGridview" Width="540px" PageSize="10">
      <Columns>
          <asp:BoundField DataField="id" HeaderText="ID" SortExpression="id" />
          <asp:TemplateField HeaderText="First Name" SortExpression="FirstName">
              <ItemStyle Width="120px" HorizontalAlign="Left" />
              <ItemTemplate>
                  <asp:Label ID="lblFirstname" Text='<%# HighlightText(Eval("FirstName")) %>' 
                      runat="server" />
              </ItemTemplate>
          </asp:TemplateField>
          <asp:TemplateField HeaderText="Last Name" SortExpression="LastName">
              <ItemStyle Width="120px" HorizontalAlign="Left" />
              <ItemTemplate>
                  <asp:Label ID="lblLastname" Text='<%# HighlightText(Eval("LastName")) %>' 
                  runat="server" />
              </ItemTemplate>
          </asp:TemplateField>
          <asp:BoundField DataField="Department" HeaderText="Department" 
              SortExpression="Department" ItemStyle-Width="130px" />
          <asp:BoundField DataField="Location" HeaderText="Location" 
              SortExpression="Location" ItemStyle-Width="130px" />
      </Columns>
      </asp:GridView>
      

      而sql数据源是这样的……

         <asp:SqlDataSource ID="SqlDataSource1" runat="server" SelectCommand="SELECT * FROM People"
          ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
          FilterExpression="firstname like '%{0}%' or lastname like '%{1}%'">
          <FilterParameters>
              <asp:ControlParameter Name="firstname" ControlID="txtSearch" PropertyName="Text" />
              <asp:ControlParameter Name="lastname" ControlID="txtSearch" PropertyName="Text" />
          </FilterParameters>
        </asp:SqlDataSource>
      

      为搜索添加文本框..

          <asp:TextBox ID="txtSearch" runat="server" />
      <asp:ImageButton ID="btnSearch" ImageUrl="images/searchbutton.png" runat="server" />
      <asp:ImageButton ID="btnClear" ImageUrl="images/clearbutton.png" runat="server" />
      

      这是绑定和输入文本到文本框的代码

          using System.Text.RegularExpressions;
      Partial;
      class GridviewwithHighlightedSearch : System.Web.UI.Page {
      
          //  Create a String to store our search results
          private string SearchString = "";
      
          string HighlightText(string InputTxt) {
              //  This function is called whenever text is displayed in the FirstName and LastName 
              //  fields from our database. If we're not searching then just return the original 
              //  input, this speeds things up a bit
              if ((SearchString == "")) {
                  return InputTxt;
              }
              else {
                  //  Otherwise create a new regular expression and evaluate the FirstName and 
                  //  LastName fields against our search string.
                  Regex ResultStr;
                  ResultStr = new Regex(SearchString.Replace(" ", "|"), RegexOptions.IgnoreCase);
                  return ResultStr.Replace(InputTxt, new MatchEvaluator(new System.EventHandler(this.ReplaceWords)));
              }
          }
      
          public string ReplaceWords(Match m) {
              //  This match evaluator returns the found string and adds it a CSS class I defined 
              //  as 'highlight'
              return ("<span class=highlight>" 
                          + (m.ToString + "</span>"));
          }
      
          protected void btnClear_Click(object sender, System.Web.UI.ImageClickEventArgs e) {
              //  Simple clean up text to return the Gridview to it's default state
              txtSearch.Text = "";
              SearchString = "";
              Gridview1.DataBind();
          }
      
          protected void btnSearch_Click(object sender, System.Web.UI.ImageClickEventArgs e) {
              //  Set the value of the SearchString so it gets 
              SearchString = txtSearch.Text;
          }
      }
      

      这是用于突出显示的 css 样式..

      这是上面网格视图的图像

          <style type="text/css">
         .highlight {text-decoration: none;color:black;background:yellow;}
      </style>
      

      希望对你有帮助……

      【讨论】:

      • SQLDatasource 如何/在哪里填充实习生附加到 gridview 的新搜索数据...???
      • 看到这一行,你也可以使用过滤器表达式
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-12
      相关资源
      最近更新 更多