日期:2014-05-17  浏览次数:20364 次

在后台的static方法中,像sqlDataReader等等一些都不能用了,没效果了
在后台的static方法中,像sqlDataReader等等一些都不能用了,没效果了

还有response这些也不能用了,后来我用HttpContext.current.response之后就可以用了。

但是sqldatareader这些还是不能用,也不知道该怎么在静态方法中引用出来。

之后在网上搜索了一些方法,用了其中的一种如下,有注释。

C# code

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web.Services;

using System.Data.SqlClient;
using System.IO;

public partial class UserManagement_DepartmentList : System.Web.UI.Page
{

    public SqlDataReader sdr,sdr1,sdr2;
    public static SqlDataReader sdr3;
    public Model.Department department;
    public Service.DepartmentService ds;


     [WebMethod]//这是一个静态方法,因为有些东西不能用,所以我就在这里面调用下面的普通方法
    public static string updateDepart()
    {
        string ids=HttpContext.Current.Request["ids"];
        UserManagement_DepartmentList departmentlist = new UserManagement_DepartmentList();
        departmentlist.selectByIdToName(ids);//在这里调用下面的方法

        return ids;
    }

    //这是一个非静态的普通方法,测试过没有问题
     public void selectByIdToName(string id)
    {
         if (Util.StringUtils.isNotBlank(id))
         {
             string[] array = id.Split(",".ToCharArray());
             ds = new Service.DepartmentService();

             int v;
             int.TryParse(array[0], out v);
             sdr2 = ds.selectDepartmentById(v);
             while (sdr2.Read())//将选择的行id对应的值显示在文本框中
             {
                 DropDownList3.SelectedValue = sdr2.GetString(2);
                 TextBox4.Text = sdr2.GetString(2);
                 TextBox5.Text = sdr2.GetString(3);
                 
             }
             //Response.Write(DropDownList3.SelectedValue + "|" + TextBox4.Text + "|" + TextBox5.Text);
             sdr2.Close();

         }              
    }
}




调试之后没有问题,打印值也和预想一样,但是运行之后发现没有效果,前台文本框里面还是什么都没有。

不知道静态方法里面那些东西该怎么引用出来使用,求大神指点。


------解决方案--------------------
看着有点乱,静态方法直接通过类名调用,不用创建实例

UserManagement_DepartmentList.xxxxxx
------解决方案--------------------
真头疼,您在静态方法里调用不到实例方法,这和 data reader 有半毛钱关系

把 updateDepart 那个 static 去掉