繁体   English   中英

对象引用未设置为对象asp.net的实例,

[英]object reference not set to an instance of an object asp.net,

我有两个问题:

  1. 我如何以其他方式使用文本框,这样它不会引发任何错误?
  2. 我有一个错误:

    “你调用的对象是空的。

而且我不知道如何解决它。 请有人看看吗?

protected void DataGridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {

        if (e.CommandName.Equals("InsertFooter"))
        {


            try
            {

                System.Web.UI.WebControls.TextBox txtEmp_num = (System.Web.UI.WebControls.TextBox)DataGridView1.Controls[0].Controls[0].FindControl("txtEmp_num");
                System.Web.UI.WebControls.TextBox txtEmp_fn = (System.Web.UI.WebControls.TextBox)DataGridView1.Controls[0].Controls[0].FindControl("txtEmp_fn");
                System.Web.UI.WebControls.TextBox txtEmp_ln = (System.Web.UI.WebControls.TextBox)DataGridView1.Controls[0].Controls[0].FindControl("txtEmp_ln");
                System.Web.UI.WebControls.TextBox txtEmp_phone = (System.Web.UI.WebControls.TextBox)DataGridView1.Controls[0].Controls[0].FindControl("txtEmp_phone");
                System.Web.UI.WebControls.TextBox txtEmp_email = (System.Web.UI.WebControls.TextBox)DataGridView1.Controls[0].Controls[0].FindControl("txtEmp_email");

                MySqlConnection conn = new MySqlConnection(connection);
                MySqlCommand cmd = new MySqlCommand();
                cmd.Connection = conn;
                cmd.CommandText = "insert into employees(Emp_number,First_name,Last_name,Phone_num,Email) values(@1,@2,@3,@4,@5)";



                cmd.Parameters.AddWithValue("@1", txtEmp_num.Text);
                cmd.Parameters.AddWithValue("@2", txtEmp_fn.Text);
                cmd.Parameters.AddWithValue("@3", txtEmp_ln.Text);
                cmd.Parameters.AddWithValue("@4", txtEmp_phone.Text);
                cmd.Parameters.AddWithValue("@5", txtEmp_email.Text);
                conn.Open();
                cmd.ExecuteNonQuery();

                conn.Close();
                Bind();


            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

    }

Object reference not set to an instance of an object意味着您试图获取属性/调用null

这意味着- txtEmp_num -您的变量之一为null: txtEmp_numtxtEmp_fntxtEmp_lntxtEmp_phonetxtEmp_email ,当您尝试在AddWithValue方法中调用Text属性时,它会引发异常。

也许您在FindControl("txt<smth>")定义的值存在一些问题

尝试如下

System.Web.UI.WebControls.TextBox txtEmp_num=(System.Web.UI.WebControls.TextBoDataGridView1.Rows[0].Cells[0].FindControl("txtEmp_num");
System.Web.UI.WebControls.TextBox txtEmp_fn = (System.Web.UI.WebControls.TextBox)DataGridView1.Rows[0].Cells[1].FindControl("txtEmp_fn");
System.Web.UI.WebControls.TextBox txtEmp_ln = (System.Web.UI.WebControls.TextBox)DataGridView1.Rows[0].Cells[2].FindControl("txtEmp_ln");
System.Web.UI.WebControls.TextBox txtEmp_phone = (System.Web.UI.WebControls.TextBox)DataGridView1.Rows[0].Cells[3].FindControl("txtEmp_phone");
System.Web.UI.WebControls.TextBox txtEmp_email = (System.Web.UI.WebControls.TextBox)DataGridView1.Rows[0].Cells[4].FindControl("txtEmp_email");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM