2012-10-22 55 views
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文件内的选择命令:

里面的.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> 

我上面有什么不起作用。不会给出错误,但根本不起作用。 我也想知道哪一种是更好的方法/理想的做法。

+0

我编辑了自己的冠军。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –

回答

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(); 
} 
+0

谢谢。我得到错误无法找到类型或命名空间名称'Parameter'(您是否缺少using指令或程序集引用?) –

+0

在您的用户中添加'using System.Web.UI.WebControls;'。 –

+0

谢谢弗朗西斯。我做到了,但仍然无法正常工作。在.aspx文件中是否有任何我缺少的东西可以看到? –