程序老提示未将对象引用设置到对象的实例,找不到原因在那。向高手求教,看问题出在哪,怎么解决?
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.Data.SqlClient;
using System.IO;
using System.Text;public partial class Administer_EditArticle : System.Web.UI.Page
{
    public SqlConnection sqlcon = new SqlConnection(ConfigurationManager.AppSettings["ConnString"]);
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            fnEditArticle();
        }
    }    public void fnEditArticle()
    {
        string it = Request["ID"].ToString().Trim();
        string strsql = "select * from tb_news where news_id='" + it.ToString().Trim() + "'";
        sqlcon.Open();
        SqlCommand cmd = new SqlCommand(strsql, sqlcon);
        SqlDataReader dr = cmd.ExecuteReader();        if (dr.Read())
        {
            Article_ID.Value = dr["news_id"].ToString().Trim();
            article_Title.Text = dr["news_title"].ToString().Trim();
            article_Time.Text = dr["news_time"].ToString().Trim();
            txtcontent.Value = dr["news_content"].ToString().Replace("src=\"", "src=\"../");
            
        }
        sqlcon.Close();
    }    protected void btn_AddArticle_Click(object sender, EventArgs e)
    {
        string it = Request["ID"].ToString().Trim();
        string instxt = "update tb_news set news_title='" + article_Title.Text.Trim() + "',news_time='" + article_Time.Text.Trim() + "',news_type='" + article_Type.Text.Trim() + "',news_content='" + txtcontent.Value.Replace("src=\"../", "src=\"") + "' where news_id=" + it.ToString().Trim(); 
        sqlcon.Open();
        SqlCommand cmd = new SqlCommand(instxt, sqlcon);
        cmd.ExecuteNonQuery();
        Response.Redirect("AdminNews.aspx");
    }
}

解决方案 »

  1.   

    dr[*].ToString()
    这里存在null数值
    所以,出错了
      

  2.   

    这个参数Request["ID"].ToString().Trim();
    传了吗?
    发一下错误提示来看看
      

  3.   

    判断下 
    try
    {
     article_Title.Text = dr["news_title"].ToString().Trim();
    }
    catch
    {
     article_Title.Text ="";
    }
    直接这样就行...
    当然也可以判断
    if (dr["news_title"]!=null )
    怎么都行呢
    所有行都些上吧
      

  4.   

    where news_id=" + it.ToString().Trim(); 
    ============
    这个地方改成
    where news_id='" + it.ToString().Trim()+"'"; 
      

  5.   

    dr[*].ToString()
    =========
    这里可以是空值的吧,
      

  6.   

    传进去的值为空,没有找到相应数据,dr 也就为空,再取它的项就会出错了,看看你传进去的值,执行一下SQL看有值没!
      

  7.   

    public void fnEditArticle()
      {
      string it = Request["ID"].ToString().Trim();
    if(it!=null)
    {
      string strsql = "select * from tb_news where news_id='" + it.ToString().Trim() + "'";
      sqlcon.Open();
      SqlCommand cmd = new SqlCommand(strsql, sqlcon);
      SqlDataReader dr = cmd.ExecuteReader();  if (dr.Read())
      {
      Article_ID.Value = dr["news_id"].ToString().Trim();
      article_Title.Text = dr["news_title"].ToString().Trim();
      article_Time.Text = dr["news_time"].ToString().Trim();
      txtcontent.Value = dr["news_content"].ToString().Replace("src=\"", "src=\"../");
        
      }
      sqlcon.Close();
    }
    eles
    {}
      }
      

  8.   

    下面一样,最好判断下Request["ID"].ToString().Trim();是否为空
      

  9.   

    第一印象就是null出错
    我去测试先...
    string a1=null;
    this.button1.Text=a1.ToString();
    出错, 未将对象引用设置到对象的实例
    所以,不能对null进行tostring()
      

  10.   


                    while (sdr.Read())
                    {
                        item item = new item();
                        item.itemID =sdr.IsDBNull(0) ? 0 : sdr.GetInt32(0);
                        item.itemName = sdr.IsDBNull(1) ? "" : sdr.GetString(1);
                        item.Summary = sdr.IsDBNull(2) ? "" : sdr.GetString(2);
                        item.parentID = sdr.IsDBNull(3) ? 0 : sdr.GetInt32(3);
    }
    //SqlDataReader取到null处理
      

  11.   

    很明显你读出来的数据存在很多 null值
    如12楼那样写吧
      

  12.   

    Value.Replace("src=\"../", "src=\"") + "' where news_id=" + it.ToString().Trim();  
    =======
    楼主,你这个地方没写对啊
    应该是:
    Value.Replace("src=\"../", "src=\"") + "' where news_id='" + it.ToString().Trim()+"'"; 
      

  13.   

    回复zcxverygood123456(蓝心爸爸),我试验了好像没有什么区别。
    现在问题好像解决了,我运行程序的时候没有再提示错误,我也没有再修改程序的。
      

  14.   


    就上这一句好使if (dr["news_title"]!=null )
      

  15.   

    string it = Request["ID"].ToString().Trim();