未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
行 85:             cm.Parameters.Add(new OleDbParameter("@Course_id", OleDbType.VarChar, 200));
行 86:                         
行 87:                         cm.Parameters["@Student_id"].Value=Session["User_id"].ToString();
行 88:                         cm.Parameters["@Course_id"].Value=Tbx_courseid.Text;
行 89:                         
源文件: c:\DZY\xuanke1.aspx.cs    行: 87 堆栈跟踪: 
[NullReferenceException: 未将对象引用设置到对象的实例。]
   Student_Class.xuanke1.Btn_yes_Click(Object sender, EventArgs e) in c:\DZY\xuanke1.aspx.cs:87
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +75
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +97
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4880代码
string strconn = ConfigurationSettings.AppSettings["dsn"];
            OleDbConnection cn = new OleDbConnection(strconn);
            cn.ConnectionString = "Provider=DMOLEDB.1; Data Source=LOCALHOST; Initial Catalog=S_CLASS; User ID=U1; Password=a123456; ";
            cn.Open();
            strsql = "insert into S_CLASS.CLASS.student_course(Student_id,Course_id) values(@Student_id,@Course_id)";
            OleDbCommand cm = new OleDbCommand(strsql, cn);
            cm.Parameters.Add(new OleDbParameter("@Student_id", OleDbType.VarChar, 200));
            cm.Parameters.Add(new OleDbParameter("@Course_id", OleDbType.VarChar, 200));
                        
                        cm.Parameters["@Student_id"].Value=Session["User_id"].ToString();
                        cm.Parameters["@Course_id"].Value=Tbx_courseid.Text;
                        
                        cn.Open();
                        try
                        {
                                cm.ExecuteNonQuery();
                                Lbl_note2.Text=" 选课成功!";
                        }
                        catch(SqlException)
                        {
                                Lbl_note.Text="添加失败!";
                        }
            
                        cn.Close();

解决方案 »

  1.   

    Session["User_id"]为null是不能用.ToString();
    if(Session["User_id"]!=null)
    {
    Session["User_id"].ToString();
    }
      

  2.   

    诶 楼上的老大怎么弄?要让User_id为空? 我这些ID建表都是主键都不为空额
      

  3.   

    看异常,应该是对 空值 有操作 才报的异常,就几句代码,看来看去,应该是sql语句参数赋值出错吧
      

  4.   

    cm.Parameters["@Student_id"].Value=Session["User_id"].ToString();
    把上面的红字部分换为字符串试试
      

  5.   

    赋值的时候,有null 值
      

  6.   

    我赋值的都是主键 不可能有空值诶  
    cm.Parameters["@Student_id"].Value=Session["User_id"].ToString();
    把上面的红字部分换为字符串试试我试过了也不行 晕
      

  7.   

    大家帮我看看 我连的是达梦数据库 用的是SQL server时的代码 语句是不是有问题 赋值语句~我不太懂
      

  8.   

    1、ViewState 对象为Null。
    2、DateSet 为空。
    3、sql语句或Datebase的原因导致DataReader空。
    4、声明字符串变量时未赋空值就应用变量。
    5、未用new初始化对象。
    6、Session对象为空。
    7、对控件赋文本值时,值不存在
    8、使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值
    9、使用FindControl时,控件不存在却没有做预处理   
    10、重复定义造成未将对象引用设置到对象的实例错误