int.TryParse Datagridview текстовое поле, которое отправляет нулевое значение, когда пусто - PullRequest
0 голосов
/ 07 марта 2019

Я хочу разобрать значение. Но текстовое поле gridview отправляет нулевое значение, когда пусто.

int qty = 0;
int.TryParse(dgvInvoiceItems[dgvInvoiceItems.Columns["Quantity"].Index, 
e.RowIndex].Value.ToString(), out qty);

dgvInvoiceItems [dgvInvoiceItems.Columns [ "Количество"]. Индекс e.RowIndex]. Значение равно нулю. Когда я пытаюсь преобразовать его в строку, возникает исключение. И если я не преобразую его, примите его как объект, который не разрешен в TryParse.

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Вы можете использовать тернарный оператор, чтобы проверить, содержит ли ячейка ноль или нет, если ноль передается пустой строке!

int.TryParse(dgvInvoiceItems[dgvInvoiceItems.Columns["Quantity"].Index, e.RowIndex].Value != null  ?
                                dgvInvoiceItems[dgvInvoiceItems.Columns["Quantity"].Index, e.RowIndex].Value.ToString() : "", out qty);
0 голосов
/ 07 марта 2019

Вы можете использовать .? и ??, чтобы использовать значение по умолчанию, если объект нулевой:

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);
...