我正在尝试使用if条件检查列值["CellNumber"]
是否为emtpy。即使列单元格值不为空,也会显示消息框,而不是退出foreach loop
并更新数据。
private void btnUpdate_Click(object sender, EventArgs e)
{
da = new SqlDataAdapter("select * from Measurement", con);
SqlCommandBuilder cb = new SqlCommandBuilder(da);
foreach (DataGridViewRow row in dgv.Rows)
{
if (Convert.ToString(row.Cells["CellNumber"].Value) == "")
{
MessageBox.Show("Please enter cellnumber", "Missing Information");
return;
}
}
try
{
da.Update(ds, "Measurement");
}
catch (DBConcurrencyException ex)
{
MessageBox.Show(ex.Message);
}
答案 0 :(得分:1)
请执行
检查datagridview中的行数 DataGridView. If myDataGridView.Rows.Count == 0
如果它等于0则为空
答案 1 :(得分:0)
你使用字符串“CellNumber”,它不应该是int
吗?
if (Convert.ToString(row.Cells["CellNumber"].Value) == "")
答案 2 :(得分:0)
if (string.IsNullOrEmpty(row.Cells["CellNumber"].Value))
{ Your Code }
答案 3 :(得分:0)
试试这种方式
if (row.Cells["CellNumber"].Value == null || string.IsNullOrEmpty(row.Cells["CellNumber"].Value.ToString()))
{
//rest
}
在验证之前调用dgv.CurrentRow.DataGridView.EndEdit();
以保存所有单元格中的更改:
private void btnUpdate_Click(object sender, EventArgs e)
{
dgv.CurrentRow.DataGridView.EndEdit();
dgv.EndEdit();
....
答案 4 :(得分:0)
尝试使用.EditedFormattedValue
if (string.IsNullOrWhiteSpace(row.Cells["CellNumber"].EditedFormattedValue.ToString()))
{
MessageBox.Show("Please enter cellnumber", "Missing Information");
return;
}