0
private void dgvComp_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
    {
        if (dgvComp.Rows[dgvComp.CurrentRow.Index].Cells["EmplId"].ToString() != "")
        {
            if (dgvComp.Columns[e.ColumnIndex].Name == "EmplId")
            {

                {

                    DataTable dt = new DataTable();

                    string auto = dgvComp.Rows[e.RowIndex].Cells["EmplId"].EditedFormattedValue.ToString();
                    dt = dataAcc.rtrvData("empl_Name,empl_Id,desg_Name", "dbo.Empldmgrphcs INNER JOIN  dbo.Designation ON dbo.Empldmgrphcs.desg_Id = dbo.Designation.desg_Id ", "empl_EmpId='" + auto + "'");
                    dgvComp.Rows[e.RowIndex].Cells["dgvname"].Value = dt.Rows[0][0].ToString();
                    dgvComp.Rows[e.RowIndex].Cells["empID"].Value = dt.Rows[0][1].ToString();
                    dgvComp.Rows[e.RowIndex].Cells["dgvdesi"].Value = dt.Rows[0][2].ToString();
                }
            }
        }
    }

上記のコードは、セルを埋めるために使用しているものですDataGridViewが、セルが空の場合、エラーが発生します。

空のセルを持つ条件を処理するにはどうすればよいですか?

4

2 に答える 2

0

メッセージボックスを表示して設定します。 e.Cancel = true;

于 2013-03-11T13:00:47.903 に答える
0
private void dgvComp_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
   if (dgvComp.Rows[dgvComp.CurrentRow.Index].Cells["EmplId"].ToString() != "")
   {
      if (dgvComp.Columns[e.ColumnIndex].Name == "EmplId")
      {
         {
            DataTable dt = new DataTable();

            string auto = dgvComp.Rows[e.RowIndex].Cells["EmplId"].EditedFormattedValue.ToString();
            dt = dataAcc.rtrvData("empl_Name,empl_Id,desg_Name", "dbo.Empldmgrphcs INNER JOIN  dbo.Designation ON dbo.Empldmgrphcs.desg_Id = dbo.Designation.desg_Id ", "empl_EmpId='" + auto + "'");

            if(dt.Rows.Count > 0)
            {
               dgvComp.Rows[e.RowIndex].Cells["dgvname"].Value = dt.Rows[0][0].ToString();
               dgvComp.Rows[e.RowIndex].Cells["empID"].Value = dt.Rows[0][1].ToString();
               dgvComp.Rows[e.RowIndex].Cells["dgvdesi"].Value = dt.Rows[0][2].ToString();
            }
            else
            {
                e.Cancel = true;
                MessageBox.Show("Validation Fail");
            }
         }
      }
   }
}
于 2013-03-11T13:02:46.467 に答える