strSQL="INSERT INTO userinfo..................
cmd=new OleDbCommand(strSQL,cn);
cn.Open();
cmd.ExecuteNonQuery();
strSQL="select u_id from userinfo where u_account='"+txtAccount.Text.ToString()+"'";
cmd=new OleDbCommand(strSQL,cn);
dr=cmd.ExecuteReader();

解决方案 »

  1.   

    楼上的说的是:你在第一次 strSQL 赋值 后没有 没有执行 就又重新赋值了 ,不过 如果是 sql2000 数据库 ,建议用 SqlCommand 的参数方式:
    cmd.SelectCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@u_name",SqlDbType.VarChar,50));
    cmd.SelectCommand.Parameters["@u_name"].Value = txtUname.Text.ToString();
      

  2.   

    未将对象引用设置到对象的实例。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
    行 237: cn=new  OleDbConnection(strConn);
    行 238: cn.Open();
    行 239: cmd.ExecuteNonQuery();
    行 240:
    行 241: strSQL="select u_id from userinfo where u_account='"+txtAccount.Text.ToString()+"'";
     
      

  3.   

    if(Page.IsValid)
    {
    strSQL="INSERT INTO userinfo(u_name,u_account,u_pwd,u_sex,u_bth,u_regdate,u_tel1,u_tel2,u_tel3,u_addr,u_zip,u_email,u_job,u_icq,u_qq,u_grp) VALUES('";
    strSQL+=txtUname.Text.ToString()+"','";
    strSQL+=txtAccount.Text.ToString()+"','";
    strSQL+=lblPwd.Text.ToString()+"','";
    strSQL+=rltSex.SelectedItem.Text.ToString()+"','";
    strSQL+=ddlYear.SelectedItem.Text.ToString()+"-"+ddlMonth.SelectedItem.Text.ToString()+"-"+ddlDay.SelectedItem.Text.ToString()+"','";
    strSQL+=DateTime.Today.ToString()+"','";
    strSQL+=txtUtel1.Text.ToString()+"','";
    strSQL+=txtUtel2.Text.ToString()+"','";
    strSQL+=txtUtel3.Text.ToString()+"','";
    strSQL+=txtUaddr.Text.ToString()+"','";
    strSQL+=txtUzip.Text.ToString()+"','";
    strSQL+=txtUemail.Text.ToString()+"','";
    strSQL+=txtUjob.Text.ToString()+"','";
    strSQL+=txtUicq.Text.ToString()+"','";
    strSQL+=txtUqq.Text.ToString()+"',1)";
    strConn="provider=Microsoft.Jet.OLEDB.4.0;data source="+Server.MapPath("txl.aspx");
    cn=new  OleDbConnection(strConn);
    cn.Open();
    cmd.ExecuteNonQuery(); strSQL="select u_id from userinfo where u_account='"+txtAccount.Text.ToString()+"'";
    cmd=new OleDbCommand(strSQL,cn);
    dr=cmd.ExecuteReader();
    while(dr.Read())
    Session["uid"]=dr["u_id"];
    dr.Close();
    cn.Close();
    //cn.Close();// strSQL="select u_id from userinfo where u_account='"+txtAccount.Text.ToString()+"'";
    // cmd=new OleDbCommand(strSQL,cn);
    // dr=cmd.ExecuteReader();
                    
    Page.Response.Redirect("welcome.aspx"); }
      

  4.   


    这个cmd你没有声明啊!而且就如楼上几位所说的,你的strSQL插入语句被你后面的覆盖了。
      

  5.   


    或者在你的:
    cmd.ExecuteNonQuery();时,没有指定cmd.CommandText为strSQL