0

私は以下を持っていて、うまくいくようです:

私の.csファイルで:

 protected void menu_ItemClick(object sender, Telerik.Web.UI.RadMenuEventArgs e)
 {
    string value = (e.Item.Value).ToString();
    WtrClientDS.SelectCommand = "SELECT * from Prog where  ProgId = " + value;
 }

.aspx ファイル内:

<asp:SqlDataSource ID="WtrClientDS" runat="server" ConnectionString="<%$ ConnectionStrings:ProgSQL %>">

</asp:SqlDataSource>

前述のように、上記の内容は問題なく動作しますが、ベスト プラクティスではないと思います。

代わりにやりたいことは、次のように .aspx ファイル内に select コマンドがあるが機能しない場合です。

.cs ファイルの内部

     protected void menu_ItemClick(object sender, Telerik.Web.UI.RadMenuEventArgs e)
     {

          string value = (e.Item.Value).ToString();
          // changed below per input from user but still does not work. 
          WtrClientDS.SelectParameters.Add(new Parameter("LocId", System.TypeCode.String, value)); 
     }

.aspx ファイルの内部:

      <asp:SqlDataSource ID="WtrClientDS" runat="server" ConnectionString="<%$ ConnectionStrings:ProgSQL %>" 
      SelectCommand =  "SELECT * from Prog where  ProgId = @LocId">

    <SelectParameters> 
       <asp:Parameter Name="LocId" Type="String"  /> 
    </SelectParameters>
 </asp:SqlDataSource>

私が上に持っているものは単に機能しません。エラーは発生しませんが、単に機能しません。また、どちらがより好ましい方法/理想的な方法であるかを知りたいと思いました。

4

1 に答える 1

1

新しい を使用してみてくださいSQLDataSource:

protected void menu_ItemClick(object sender, Telerik.Web.UI.RadMenuEventArgs e)
 {
      string value = (e.Item.Value).ToString();
      string strConn = ConfigurationManager.ConnectionStrings["ConnectionStrings:ProgSQL"].ConnectionString; 

      SqlDataSource WtrClientDS = new SqlDataSource(); 
      WtrClientDS.ConnectionString = strConn;
      WtrClientDS.SelectCommand = "SELECT * from Prog where ProgId = @LocId"
      WtrClientDS.SelectParameters.Add(new Parameter("LocId", System.TypeCode.String, value));

      //refresh your control
      WtrClients.DataSource = WtrClientDS.Select(DataSourceSelectArguments.Empty);
      WtrClients.Rebind();
 }
于 2012-10-22T19:41:30.383 に答える