簡體   English   中英

從靜態方法調用非靜態方法並綁定GridView

[英]Call non static method from Static method and Bind GridView

嗨,我的靜態方法是

[WebMethod(EnableSession = true)]
public static List<Entity.Report> ChartNavigation(string type, string user, string date)
{


        WebForm2 objForm = new WebForm2();
        objForm.BindCVTrackerForNavigation(user, date);

        List<Entity.Report> listchart = new List<Entity.Report>();
        using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Recruitment"].ConnectionString))
        {
            string sqlString = "GetNumberOfCVSentForChartNavigation";
            using (SqlCommand cmd = new SqlCommand(sqlString, conn))
            {
                cmd.CommandType = System.Data.CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@UserName", user.Replace("\"", "")));
                cmd.Parameters.Add(new SqlParameter("@Date", date.Replace("\"", "")));
                conn.Open();
                SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                while (rdr.Read())
                {
                    Entity.Report obj = new Entity.Report();
                    Utilities.Common.Fill(obj, rdr);
                    listchart.Add(obj);
                }
                conn.Close();
            }
        }
        return listchart;
}

我從中調用非靜態方法。 我的非靜態方法是

protected void BindCVTrackerForNavigation(string User,string Date)
{
        DataSet ds = new DataSet();
        using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Recruitment"].ConnectionString))
        {
            string sqlString = "GetNumberOfCVSentForNavigation";
            using (SqlCommand cmd = new SqlCommand(sqlString, conn))
            {
                cmd.CommandType = System.Data.CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@UserName", User.Replace("\"", "")));
                cmd.Parameters.Add(new SqlParameter("@Date", Date.Replace("\"", "")));
                conn.Open();
                SqlDataAdapter DA1 = new SqlDataAdapter(cmd);
                DA1.Fill(ds);
                conn.Close();
            }
            if (ds.Tables.Count > 0)
            {
                if (ds.Tables[0].Rows.Count > 0)
                {
                    gvCVTracker.DataSource = ds.Tables[0];
                    gvCVTracker.DataBind();
                }
            }
        }
}

將數據源應用於gvCVTracker它將引發錯誤Object reference not set to an instance of an object. 我不知道這是什么問題? 任何幫助都將適用。謝謝。

您必須使用Page.LoadControl創建WebForm2的實例,以便它也可以處理控件的初始化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM