我有两个问题:
"对象引用未设置为对象的实例。
我不知道如何解决它。 请有人看看吗?
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);
}
}
}
答案 0 :(得分:0)
Object reference not set to an instance of an object
表示您正在尝试获取属性/调用某个null
的方法。
这意味着 - 至少 - 你的一个变量是null:txtEmp_num
,txtEmp_fn
,txtEmp_ln
,txtEmp_phone
,txtEmp_email
并且它正在抛出当您尝试在Text
方法
AddWithValue
属性时出现异常
也许,您在FindControl("txt<smth>")
答案 1 :(得分:0)
尝试如下
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");