2012-07-12 67 views
1

即时获取字符串值回归为regression = (Session["Regression"]).ToString();在.aspx.cs文件中,然后我想在SelectCommand of SqlDataSource属性中的.aspx文件中使用此值如下如何访问.aspx文件中的.aspx.cs文件的字符串变量值

SelectCommand="SELECT [issue_oid], [issue_num], [regression], 
      [status], [tested_by], [tested_on], [patch_name], [arrived_on], [previous_info], [comment], [is_duplicate] FROM [itt_monthly_patch_issue_list] where status='Not Tested' and `regression='<%#regression%>'"` 

.aspx.cs文件的Page_Load方法如下

protected void Page_Load(object sender, EventArgs e) 
    { 
      if ((Session["UserName"].ToString()) == string.Empty) 
      { 
       Server.Transfer("regressionType.aspx"); 
      } 
      regression = (Session["Regression"]).ToString(); 
      usrname = (Session["UserName"]).ToString(); 
      DataBind(); 
    } 

请建议我怎样才能做到这一点? 在此先感谢...

+0

可以通过使用System.CodeDom,expressionBuilders,德做过类似的工作,我做到了一次HTTP:/ /satindersinght.blogspot.in/2012/01/how-to-set-dynamic-connectionstring-of.html – 2012-07-12 05:47:43

+0

这让我想起为什么我讨厌WebForms。 – 2012-07-12 05:51:05

回答

2

您可以您会话变量在你的SqlDataSource值。像这个例子一样。

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:testDatabaseConnectionString %>" 
    SelectCommand="SELECT * FROM [UserTable] WHERE ([userID] = @UserID)"> 
    <SelectParameters> 
     <asp:SessionParameter Name="UserID" SessionField="UserID" Type="Int32" /> 
    </SelectParameters> 
</asp:SqlDataSource> 

让我们知道有这方面的其他问题..

+0

非常感谢mayank .......它正在工作 – picnic4u 2012-07-13 08:26:20

0

添加会话参数设置为您的SQL数据源这样

<asp:SqlDataSource SelectCommand="SELECT [issue_oid], [issue_num], [regression], 
     [status], [tested_by], [tested_on], [patch_name], [arrived_on], [previous_info], [comment], [is_duplicate] FROM [itt_monthly_patch_issue_list] where status='Not Tested' and `regression='<%#regression%>'"`> 

<SelectParameters> 
     <asp:SessionParameter SessionField="Regression" Name="ParameterName" Type="String" /> 
</SelectParameters> 
</asp:SqlDataSource> 
+0

没有任何运气。任何其他方式? – picnic4u 2012-07-12 12:38:00

+0

你现在得到什么错误?这是唯一的方法,你必须声明式地(在aspx代码中)或编程式地(在代码后面)将会话feild添加到sqldatasource。 – 2012-07-12 13:01:32

+0

SelectCommand =“SELECT [issue_oid],[issue_num],[regression], [status],[tested_by],[tested_on],[patch_name],[arrive_on],[previous_info],[comment],[is_duplicate] FROM [itt_monthly_patch_issue_list]其中status ='未测试'和[回归] ='<%= regression%>'“ 实际上,上述命令不会从db中获取数据,因为查询的”回归“列 的值不正确确认即时在wep页面上打印一个标签中的值,但在那里它正在打印,因为它就像<%#regression%> – picnic4u 2012-07-12 13:34:20

0

试试这个:

SelectCommand="SELECT [issue_oid], [issue_num], [regression], 
       [status], [tested_by], [tested_on], [patch_name], [arrived_on], [previous_info], [comment], [is_duplicate] FROM [itt_monthly_patch_issue_list] where status='Not Tested' and `regression='<%=ReturnRegression()%>'"` 

在代码隐藏:

string regression=null;//Before Page_Load 

    protected string ReturnRegression() 
    { 
    //Write logic here to prevent null being returned 
     return regression; 
    } 
+0

不working.is有任何我必须为'

'就像get或set方法那样? – picnic4u 2012-07-12 12:12:29

+0

can any1可以帮我吗? – picnic4u 2012-07-13 07:08:54

0

试试这个:

public StringBuilder regression = new StringBuilder(); 
regression.Append((Session["Regression"]).ToString()); 

然后在.aspx页面(在SELCT命令),你可以用“回归”为:

<% =regression %> 
+0

仍然没有从DB获取数据bcoz回归值不是从aspx.cs页面到aspx页面 – picnic4u 2012-07-12 12:05:50

+0

可以any1帮我出来吗? – picnic4u 2012-07-13 07:08:14

+0

检查第三篇文章链接:[链接](http://forums.asp.net/t/1115044.aspx/1)..希望它可以帮助您 – user1509 2012-07-13 07:17:12

相关问题