none
未将对象引用设置到对象的实例 RRS feed

  • 问题

  • 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 NS_DBOP;

    public partial class Flow_ArchivesInfo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Bind();
            }
        }
        public string path = null;
        public string id = null;
        public void Bind()
        {
            id = Request.QueryString["id"].ToString();
            DataSet ds = new DBoperate().ExecuteQuery("select * from FlowDoc where ID=" + Convert.ToInt32(Request.QueryString["id"]),0,0,"flowdoc");
            foreach(DataRow dr in ds.Tables[0].Rows)
            {
                this.lblTitle.Text = dr["Title"].ToString();
                this.lblStep.Text = new DBoperate().ExecuteScalar("select Name from Flow where ID=" + Convert.ToInt32(dr["FlowID"])).ToString();
                this.lblUrgent.Text =dr["IsUrgent"].ToString().Equals("0") ?  "一般" :"重要";
                this.lblUser.Text = new DBoperate().ExecuteScalar("select Name from Employee where Employeeid=" + dr["UserID"]).ToString();
                this.lblPubDate.Text = dr["PubDate"].ToString();
                this.txtcontent.Value = dr["Content"].ToString();
                path = dr["Attachment"].ToString();
                string[] a;
                a = path.Split(';');
                string[] AccIDList ={ "0" };
                for (int i = 0; i < a.Length; i++)
                {

                    //LblAcc.Text += "<a href=\"upfiles/" + "+a[i]+"+  target=\"_blank\">" + a[i] + "</a>" + "&nbsp" + "&nbsp";
                    this.lblAr.Text += "<a href=\"Files/"
                            + a[i]
                            + "\" target=\"_blank\">"
                            + a[i]
                            + "</a>" + "&nbsp" + "&nbsp";
                }
            }

            string sql = "select * from FlowAction where ID in (select ActionID from FlowStep where FlowID in (select FlowID from FlowDoc where ID=" + Convert.ToInt32(Request.QueryString["id"]) + "))";
            DataSet dsstep = new DBoperate().ExecuteQuery(sql, 0, 0, "flowstep");
            string step = null;
            foreach (DataRow drs in dsstep.Tables[0].Rows)
            {
                step += Convert.ToString(drs["Name"]) + "-->";
            }
            this.lblStep.Text = step + "完成";
        }
    }

    错误提示: id = Request.QueryString["id"].ToString();——>未将对象引用设置到对象的实例.
    请问:这该怎样修改?

    2010年5月13日 0:35

答案

  • 您可以尝试如下方法:

    if(!string.IsNullOrEmpty(Request.QueryString["id"]))

    {

      id = Request.QueryString["id"].ToString();

    }

    else

    {

       id = 设置一个默认值;

    }

    然后使用id操作

    • 已标记为答案 红红 2010年5月13日 2:26
    2010年5月13日 2:18
    版主

全部回复

  • 添加一个判断

    if(Request.QueryString["id"]!=null)

    {

      id = Request.QueryString["id"].ToString();

    }


    努力+方法=成功
    2010年5月13日 1:03
  • 你好 请你检查你的URL中是否有如http://www.xxx.com/xxx.aspx?id=2222中的id

    你可以通過下麵的代碼判斷

    if(Request.QueryString["id"]!=null)

    id=Request.QueryString["id"].ToString();

    else

    throw new Exception("id 為空!");


    I see you~http://hi.baidu.com/1987raymondMy Blog~~~
    2010年5月13日 1:08
    版主
  • Request.QueryString[“id"] 返回类型已经是 string,请不要对它再调用 ToString 方法,这是纯粹是画蛇添足,还带来了问题潜在的空引用问题

    id = Request.QueryString[“id"]; // 可能 null,因为url 中没有查询参数 id

    if(id != null) {

    // your codes .....

    }


    问题要简单,错误须详细@错误/异常/堆栈信息+操作系统+软件版本+all the context of the issue Hope Helpful | http://www.leoworks.net
    2010年5月13日 2:13
  • 您可以尝试如下方法:

    if(!string.IsNullOrEmpty(Request.QueryString["id"]))

    {

      id = Request.QueryString["id"].ToString();

    }

    else

    {

       id = 设置一个默认值;

    }

    然后使用id操作

    • 已标记为答案 红红 2010年5月13日 2:26
    2010年5月13日 2:18
    版主