0

我正在尝试获取 gridview 列的特定单元格值,但收到 NullReferenceException 错误。我不知道为什么,因为我以正确的方式和正确的代码使用所有控件。请向我建议一个解决方案。

代码:

 protected void lnkedit_Click(object sender, EventArgs e)
    {
        // LinkButton btndetails = sender as  LinkButton;
        //GridViewRow gvrow = (GridViewRow)btndetails.NamingContainer;
        //lblID.Text = gvdetails.DataKeys[gvrow.RowIndex].Value.ToString();
        ////  lblCompanyName.Text = gvrow.Cells[1].Text;
        //txt_ComName.Text = gvrow.Cells[1].Text;
        //txt_ShortName.Text = gvrow.Cells[2].Text;
        //txt_email.Text = gvrow.Cells[3].Text;
        //txt_website.Text = gvrow.Cells[4].Text;
        string str = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:/ATTt/App_Data/eTimeTrackLite1.mdb;Persist Security Info=False;");
        OleDbConnection conn = new OleDbConnection(str);
        conn.Open();
        OleDbCommand cmd = new OleDbCommand();
        GridViewRow row = gvdetails.SelectedRow;


        string index = row.Cells[0].Text.ToString();  **/*Error occure on this line*/**

        cmd.CommandText = "select CompanyId from Companies where CompanyFName = '"+index+"'";
        // cmd.Parameters.AddWithValue("@CompanyId", Convert.ToInt32(lblID.Text));
        cmd.Connection = conn;
        OleDbDataAdapter da = new OleDbDataAdapter();
        DataSet ds = new DataSet();
        da.Fill(ds);
        DataTable dt = new DataTable();
        dt = ds.Tables[0];
        CompanyId = dt.Rows[0]["CompanyId"].ToString();
       // da.UpdateCommand = cmd;

       // cmd.ExecuteNonQuery();
        this.ModalPopupExtender1.Show();
    }

我的网格视图:

在此处输入图像描述 提前致谢。

4

1 回答 1

1

是否可以处理SelectedIndexChanged事件而不是链接点击?如果是这样 - 只需按照此处的 MSDN 示例 - http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.selectedrow.aspx

否则,您需要检查rownull ,因为无法保证在您的事件发生时存在选定的行:

GridViewRow row = gvdetails.SelectedRow;
if (row == null)
{
    // Probably display some text to a user asking to select a row
    return;
}
于 2012-06-02T09:02:33.623 回答