我想解析一个值。但是,GridView文本框为空时将发送空值。
int qty = 0;
int.TryParse(dgvInvoiceItems[dgvInvoiceItems.Columns["Quantity"].Index,
e.RowIndex].Value.ToString(), out qty);
dgvInvoiceItems [dgvInvoiceItems.Columns [“ Quantity”]。Index, e.RowIndex] .Value为空。当我尝试将其转换为字符串时,它将引发异常。 如果我不进行转换,则将其作为TryParse不允许的对象。
答案 0 :(得分:0)
如果对象为空,则可以使用.?
和??
使用默认值:
int.TryParse(dgvInvoiceItems[dgvInvoiceItems.Columns["Quantity"].Index, e.RowIndex].Value?.ToString() ?? "0", out int qty);
或
int.TryParse((dgvInvoiceItems[dgvInvoiceItems.Columns["Quantity"].Index, e.RowIndex].Value ?? 0).ToString(), out int qty);
答案 1 :(得分:0)
您可以使用三元运算符检查单元格是否包含null,如果null则传递空字符串!
int.TryParse(dgvInvoiceItems[dgvInvoiceItems.Columns["Quantity"].Index, e.RowIndex].Value != null ?
dgvInvoiceItems[dgvInvoiceItems.Columns["Quantity"].Index, e.RowIndex].Value.ToString() : "", out qty);