DataGridView更新单元格

时间:2013-09-24 09:12:33

标签: c# winforms datagridview

在我的项目中,有一个datagridview,如果没有数据并单击UPDATE按钮,我应该收到错误消息。这里,如果我直接点击更新按钮我收到错误消息,但如果我点击datagridview(即使datagridview中没有数据)并点击更新,我收到消息更新。请告诉我应该使用什么代码而不是(dataGridView2.SelectedCells.Count == 0)。 我正在使用的代码是:

private void btnUpdate_Click(object sender, EventArgs e)
{
        if (dataGridView2.SelectedCells.Count == 0)
        {
            MessageBox.Show("There are no any records to update");
        }
        else
        {
            SqlConnection con = Helper.getconnection();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            con.Open();
            cmd.CommandType = CommandType.Text;
            string PrjName = txtPrjNmae.Text;
            string Description = txtPrjdescription.Text;
            DateTime Date = dateUpdate.Value;
            dateUpdate.Format = DateTimePickerFormat.Custom;
            dateUpdate.CustomFormat = "dd/MM/yy";
            string Size = txtPrjSize.Text;
            string Manager = txtPrjManager.Text;
            cmd.CommandText = "Update Projects set Description='" + Description + "', DateStarted='" + Date + "',TeamSize='" + Size + "',Manager='" + Manager + "' where ProjectName= '" + PrjName + "' ";
            MessageBox.Show("Project Details are updated");
            dataGridView2.Update();
            dataGridView2.Refresh();
            cmd.ExecuteNonQuery();
            con.Close();
        }
            BindData3();            
    }       

3 个答案:

答案 0 :(得分:1)

试试这个:

if (dataGridView2.RowCount == 0){
        MessageBox.Show("There are no any records to update");
}

答案 1 :(得分:1)

尝试使用以下代码并查看其是否有效:

dataGridView2.RowCount == 0

答案 2 :(得分:1)

我认为这里的问题是您将AllowUserToAddRows的{​​{1}}属性设置为DataGridView。这样,true底部总会有一个空行,因此DataGridView将返回几乎为1(用于创建新条目的空行)。

有两种可能性摆脱这个问题:

  1. 如果您不想允许用户添加新行,请将RowCount设置为false
  2. 以这种方式更改问题:
  3. AllowUserToAddRows

    希望这有帮助。