当前位置:编程学习 > C#/ASP.NET >>

vs2008中数据库的更新操作老是“未将对象引用设置到对象的实例。 ”

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["id"] != null && Session["id"] != "")
        {
            String strcon = "Data Source=localhost; Initial Catalog=engine; Integrated Security=True";
            SqlConnection con = new SqlConnection(strcon);
            String mysql = "Select * From [user]";
            SqlDataAdapter myadapter = new SqlDataAdapter(mysql, con);
            con.Open();
            myadapter.UpdateCommand = new SqlCommand("Update [user] set" + "name=@name" + "sex=@sex" + "birthday=@birthday" + "phone=@phone" + "email=@email" + "address=@address" + "photo=@photo where id=@id", con);
            myadapter.UpdateCommand.Parameters.Add("@name", SqlDbType.VarChar, 50, "name");
            myadapter.UpdateCommand.Parameters.Add("@sex", SqlDbType.VarChar, 50, "sex");
            myadapter.UpdateCommand.Parameters.Add("@birthday", SqlDbType.VarChar, 50, "birthday");
            myadapter.UpdateCommand.Parameters.Add("@phone", SqlDbType.VarChar, 50, "phone");
            myadapter.UpdateCommand.Parameters.Add("@email", SqlDbType.VarChar, 50, "email");
            myadapter.UpdateCommand.Parameters.Add("@address", SqlDbType.VarChar, 50, "address");
            myadapter.UpdateCommand.Parameters.Add("@photo", SqlDbType.VarChar, 50, "photo");
            SqlParameter p1 = myadapter.UpdateCommand.Parameters.Add("@id", SqlDbType.Decimal);
            p1.SourceColumn = "id";
            p1.SourceVersion = DataRowVersion.Original;
            DataSet mydataset = new DataSet();
            myadapter.Fill(mydataset, "[user]");
            DataTable mytable = mydataset.Tables["[user]"];
            foreach (DataRow myrow in mytable.Rows)
            {
                if (myrow["id"].ToString() == Session["id"].ToString())
                {
                    myrow["name"] = name.Text;
                    myrow["sex"] = sex.SelectedItem.Value;
                    myrow["birthday"] = birthday.Text;
                    myrow["phone"] = phone.Text;
                    myrow["email"] = email.Text;
                    myrow["address"] = address.Text;
                    myrow["photo"] = photo.Text;
                    myadapter.Update(mydataset, "[user]");
                    Response.Write("<h3>成功更新表中的数据</h3><hr>");
                    con.Close();
                    Response.Write("成功关闭数据库!");
                    return;
                }
            }
            Response.Write("<h3>没有找到要更新的记录<h3></h>");
            con.Close();
            Response.Write("成功关闭数据库!");
        }
 
    }
   为什么老是提示:“未将对象引用设置到对象的实例。  求高手急救啊!!!!!!!!!!!!!!
 ” --------------------编程问答-------------------- 断点调试下,看哪句引起的“未将对象引用设置到对象的实例”
这种问题都是因你的对象是空,然后对其上的属性或方法等做了操作引起的。。。 --------------------编程问答-------------------- LZ 哪一行报错?
单步调试,哪里报错就是哪里有空值 --------------------编程问答-------------------- 谢啦  我的问题解决了 呵呵
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,