无法循环 DataGridView 空值
Cannot looping DataGridView null values
我正在尝试遍历 DataGridView
行,然后发送值以在我的 SQL-DB 中进行更新。我可以进行更新,但是当我到达行的末尾时程序崩溃,因为它读取了一个空值。
Exception: System.NullReferenceException, Additional information: Object reference not set to an instance of an object.
我有两个问题:
- 为什么我不能用我的 if 停止方法 return(见下文)
陈述?
如何让循环在字符串中插入空值?一些
我的专栏可以向其发送空值。有些不是,有吗
有什么方法可以选择吗?
private void editEmployeeDGV()
{
foreach (DataGridViewRow row in employeeDataGridView.Rows)
{
if (row.Cells["SocialSNColumn"].Value.ToString() == null)
{
return;
}
string SocialSN = row.Cells["SocialSNColumn"].Value.ToString();
string Name = row.Cells["nameColumn"].Value.ToString();
string Surname = row.Cells["SurnameColumn"].Value.ToString();
string Email = row.Cells["EmailColumn"].Value.ToString();
string TelNr = row.Cells["TelNrColumn"].Value.ToString();
string Gender = row.Cells["GenderColumn"].Value.ToString();
string ECName = row.Cells["ECNameColumn"].Value.ToString();
string ECNumber = row.Cells["ECNumberColumn"].Value.ToString();
cont.editEmployeeDGV(SocialSN, Name, Surname, Email, TelNr, Gender, ECName, ECNumber);
}
}
异常的原因是您试图在 Value
属性 上调用 ToString()
方法,但它是 null
.
if (row.Cells["SocialSNColumn"].Value.ToString() == null)
{
return;
}
没有理由首先转换为字符串;只测试 null
:
if (row.Cells["SocialSNColumn"].Value == null)
{
return;
}
你的其他代码行 运行 如果它们的 Value
属性中的任何一个是 null
,则同样有抛出 NRE 的风险。为避免这些,您可能需要将 ToString()
替换为 Convert.ToString()
方法,该方法将 null
替换为空字符串:
string SocialSN = Convert.ToString(row.Cells["SocialSNColumn"].Value);
string Name = Convert.ToString(row.Cells["nameColumn"].Value);
我正在尝试遍历 DataGridView
行,然后发送值以在我的 SQL-DB 中进行更新。我可以进行更新,但是当我到达行的末尾时程序崩溃,因为它读取了一个空值。
Exception: System.NullReferenceException, Additional information: Object reference not set to an instance of an object.
我有两个问题:
- 为什么我不能用我的 if 停止方法 return(见下文) 陈述?
如何让循环在字符串中插入空值?一些 我的专栏可以向其发送空值。有些不是,有吗 有什么方法可以选择吗?
private void editEmployeeDGV() { foreach (DataGridViewRow row in employeeDataGridView.Rows) { if (row.Cells["SocialSNColumn"].Value.ToString() == null) { return; } string SocialSN = row.Cells["SocialSNColumn"].Value.ToString(); string Name = row.Cells["nameColumn"].Value.ToString(); string Surname = row.Cells["SurnameColumn"].Value.ToString(); string Email = row.Cells["EmailColumn"].Value.ToString(); string TelNr = row.Cells["TelNrColumn"].Value.ToString(); string Gender = row.Cells["GenderColumn"].Value.ToString(); string ECName = row.Cells["ECNameColumn"].Value.ToString(); string ECNumber = row.Cells["ECNumberColumn"].Value.ToString(); cont.editEmployeeDGV(SocialSN, Name, Surname, Email, TelNr, Gender, ECName, ECNumber); } }
异常的原因是您试图在 Value
属性 上调用 ToString()
方法,但它是 null
.
if (row.Cells["SocialSNColumn"].Value.ToString() == null)
{
return;
}
没有理由首先转换为字符串;只测试 null
:
if (row.Cells["SocialSNColumn"].Value == null)
{
return;
}
你的其他代码行 运行 如果它们的 Value
属性中的任何一个是 null
,则同样有抛出 NRE 的风险。为避免这些,您可能需要将 ToString()
替换为 Convert.ToString()
方法,该方法将 null
替换为空字符串:
string SocialSN = Convert.ToString(row.Cells["SocialSNColumn"].Value);
string Name = Convert.ToString(row.Cells["nameColumn"].Value);