我正在开发一个程序,其中包含一个表单中的DataGridView,我正在从XML文件将数据导入此DataGridView。 在这个DataGridView中,我可以添加,编辑和删除这些数据,并在单击按钮时将此更改保存到XML文件中。 (有两列。) 我的问题是,我需要在单击按钮时检查是否有任何单元格为空,在这种情况下,显示一个MessageBox来指示这一点,并且不要让我保存此更改。
我尝试过循环等等,但找不到任何有用的东西。 希望可以有人帮帮我!谢谢
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
namespace Sullair
{
public partial class IPs : Form
{
public IPs()
{
InitializeComponent();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
}
private void IPs_Load(object sender, EventArgs e)
{
try
{
DataSet ds = new DataSet();
ds.ReadXml(@"C:\Users\Administrador\source\repos\Sullair\schema.xml");
dataGridView1.DataSource = ds.Tables[0];
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
private void Save()
{
DataTable db = (DataTable)dataGridView1.DataSource;
db.WriteXml(@"C:\Users\Administrador\source\repos\Sullair\schema.xml");
}
private void btnSave_Click(object sender, EventArgs e)
{
Save();
}
}
}
答案 0 :(得分:0)
只需在表格单元格上执行嵌套循环,如下所示:
private bool AreAllCellsFilled(DataTable t)
{
if (t == null || t.Rows.Count == 0 || t.Columns.Count == 0) return true;
for (int rowIdx = 0; rowIdx < t.Rows.Count; rowIdx++)
{
for (int colIdx = 0; colIdx < t.Columns.Count; colIdx++)
{
if (t.Rows[rowIdx][colIdx] == DBNull.Value)
{
MessageBox.Show($"Cell {colIdx + 1} of row {rowIdx + 1} is empty");
return false;
}
}
}
return true;
}
答案 1 :(得分:0)
foreach(DataGridViewRow row in dataGridView1.Rows)
{
foreach(DataGridViewCell cell in row.Cells)
{
if(string.IsNullOrEmpty(cell.Value as string))
{
//cell is empty
}
else
{
//cell is not empty
}
}
}
答案 2 :(得分:0)
//当有空值显示消息显示时,以此为例(否) //如果没有空值打开文件对话框
>>> sequenceResize(sequence, 5)
[1, 3, 5, 7, 9]
>>> sequenceResize(sequence, 19)
[1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10]
答案 3 :(得分:0)
这对我有用。检查特定单元格是否为空或为空。
if (string.IsNullOrEmpty(dataGridView_A0.Rows[0].Cells[0].Value as string))
{
MessageBox.Show("Null or Empty", "Results");
}