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

rowそれ以外の場合は、イベントが発生したときに選択された行があるという保証がないため、nullをチェックする必要があります。

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 に答える