未将对象引用设置到对象的实例。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;public partial class P_Message : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
       // Response.Write("<script language=javascript> alert('" + Session["Message_Title"].ToString() + "123" + "');</script>");
        this.Title = "消息详细信息";
        ////////////////////////////
        string sc = @"Data Source=.;Initial Catalog=classmate;Integrated Security=True";
        SqlConnection Sql = new SqlConnection(sc);
        Sql.Open();
        string str1 = "update message_board set Views=Views+1 where MesTitle='"+Session["MesTitle"].ToString()+"'and Mespeople='"+Session["Mespeople"].ToString()+"'and Mestime='"+Convert.ToDateTime(Session["Mestime"].ToString())+"'and Mescontent='"+Session["Mescontent"].ToString()+"'";
        string str = "select * from message_board where MesTitle= MesTitle='" + Session["MesTitle"].ToString() + "'and Mespeople='" + Session["Mespeople"].ToString() + "'and Mestime='" + Convert.ToDateTime(Session["Mestime"].ToString()) + "'and Mescontent='" + Session["Mescontent"].ToString() + "'";
        try
        {
            SqlDataAdapter ada = new SqlDataAdapter(str, Sql);
            DataSet data = new DataSet();
            ada.Fill(data,"Message");
            Label8 .Text = data.Tables[0].Rows[0]["MesTitle"].ToString();
            Label9.Text = data.Tables[0].Rows[0]["Mespeople"].ToString();
            Label10.Text = data.Tables[0].Rows[0]["Mestime"].ToString();
            Label11.Text = data.Tables[0].Rows[0]["Mescontent"].ToString();
            Label6.Text = data.Tables[0].Rows[0]["Views"].ToString();
            SqlCommand command = new SqlCommand(str1, Sql);
            command.ExecuteNonQuery();
        }
        catch (SqlException E)
        {
            Response.Write("<script Language=Javescript>alert('" + E.Message + "');history(-1);</script>");
        }
        finally
        {
            Sql.Close();
        }
    } 
}

解决方案 »

  1.   

    不好意思,没说清楚。
     string str1 = "update message_board set Views=Views+1 where MesTitle='"+Session["MesTitle"].ToString()+"'and Mespeople='"+Session["Mespeople"].ToString()+"'and Mestime='"+Convert.ToDateTime(Session["Mestime"].ToString())+"'and Mescontent='"+Session["Mescontent"].ToString()+"'";
    这行报错
      

  2.   

    自己调试一下 估计有一个Session 为 null啦
      

  3.   

    string str1 = "update message_board set Views=Views+1 where MesTitle='"+(Session["MesTitle"]?==null?"":Session["MesTitle"].ToString())+"'and Mespeople='"+(Session["Mespeople"]===null?"":Session["Mespeople"].ToString())+"'and Mestime='"+Convert.ToDateTime(Session["Mestime"].ToString())+"'and Mescontent='"+Session["Mescontent"].ToString()+"'";
      

  4.   

    session没有值,你看看在那个地方赋值的,看看怎么丢了
      

  5.   

    先对引用的判断一下,如果为空则处理成 + "NULL" +
      

  6.   

    Session["Mestime"].ToString()改为Convert.ToString(Session["Mestime"])或Session["Mestime"]==null?"":Session["Mestime"].ToString()   这样试一试看看
      

  7.   

    我建议用参数来连接sql语句,不要拼接
    用参数不需要知道它的类型
    只需要传值就行!~~~
      

  8.   

    你把session的值分别赋给个字符串看看那个字符串为空,就知道了
      

  9.   

    你把session的值分别赋给个字符串看看那个字符串为空,就知道了
      

  10.   

    估计有个Session值没有赋值,为NULL了,自己测一下
      

  11.   

    所有的Session加判断如:
    if(Session["Mestime"]!=null)
    ..
      

  12.   

    如果你不需要要做严格的判断的话,
    可以用以下方法来规避问题
     sql = " ... and ColumnName = '"+ (Session["aaa"]+"") +"'"
      

  13.   

    Session值为空了,楼主,你这样写不够严谨!
    Mestime='"+Convert.ToDateTime(Session["Mestime"].ToString())如果Session["Mestime"]值为空,转化为日期的时候也是会报错的!
      

  14.   

    调试跟踪一下,看哪个Session是空的?然后查找一下为空的Session就的哪里被赋值的?是不是被赋值了?
      

  15.   

    Convert.ToDateTime(Session["Mestime"].ToString())你这句也有问题,应该为
    Convert.ToDateTime(Session["Mestime"].ToString()).ToString();
    另外如果你传入的Session["Mestime"].ToString()如果为空,那么Convert.ToDateTime转换时会出错的,对于需是哟Convert进行转换的,最好先检查一下他们的值是否复核转换规则。
    而且你现在这句话的转换其实没有一点意义,可以直接简化成Session["Mestime"].ToString(),这样即便为空也不会报错。如果你是想对日期格式进行转换,那么也应该是Convert.ToDateTime(Session["Mestime"].ToString()).ToString(“yyyyMMdd");或者Convert.ToDateTime(Session["Mestime"].ToString()).ToString(”yyyy年MM月dd日");
      

  16.   

    先对引用的判断一下,如果为空则处理成 + "NULL" +
    用追加字符串的形式。
      

  17.   

    又见string
    当初我也经常因为string 为null 导致exception代码有够乱
    那就不怕多写几行了
    每个session 加个判断就好了