将 Studio 2010 C# 与 DB2 UDB 9.7.5 一起使用
我有一个从带有 WHERE IN 子句的 DataSource 填充的网格视图,如下所示:
<asp:SqlDataSource ID="LUWAccts" runat="server" onSelecting="gvGrid01_Selecting"
ConnectionString="<%$ ConnectionStrings:LUWHAConnect %>"
ProviderName="<%$ ConnectionStrings:LUWHAConnect.ProviderName %>"
SelectCommand="SELECT mycolumns FROM mytables WHERE GROUP_NAME IN ? ">
<SelectParameters>
<asp:Parameter Name="grpList" Type="String" />
</SelectParameters>
硬编码 WHERE 子句可以正常工作(即 WHERE GROUP_NAME IN ('GROUP1','GROUP2','GROUP3')
但是我正在尝试在后面的代码中使用我的数据源的 onSelecting 事件来构建组列表,如下所示:
protected void gvGrid01_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
string gpList = Get_SVCACCT_Auth_Groups(Session["ThisUser"].ToString());
//This routine returns the string "('GROUP1','GROUP2','GROUP3')"
}
当我显示 grpList 字符串时,我确实有 ('GROUP1','GROUP2','GROUP3')。
但我没有显示任何数据。我已经搜索并尝试了各种技术来更改 SELECT 语句、使用 e.Command.Parameters.Add 修改参数列表、使用 ControlParemers 等。
我还阅读了一篇关于 WHERE IN 子句如何无法处理逗号分隔列表参数的文章,但 IN 关键字可以查询表。
我的 gpList 不是从另一个 SELECT 语句构建的——但我仍然尝试了一些这样的例子,但没有运气。作为一个新手 - 我似乎在围绕解决方案跳舞。
如果我错过了有助于回答这个问题的帖子,请告诉我。任何帮助,将不胜感激。