Подтвердить что ты не робот

Присвоить значение Null целочисленной колонке в DataTable

У меня есть datatable с One ColumnName "CustomerID" с Integer DataType. Динамически я хочу добавить строки в DataTable. Для этого я создал один объект DataRow, например:

  DataTable dt = new DataTable();
  DataRow DR = dt.NewRow();
  DR["CustomerID"] = Convert.ToInt32(TextBox1.Text);

Но если TextBox содержит пустую строку, она выдает ошибку. В этом случае я хочу присвоить значение Null идентификатору CustomerID. Как это сделать?

4b9b3361

Ответ 1

Нулевая/пустая строка находится в неправильном формате; вам нужно будет обнаружить этот сценарий и компенсировать:

    DR["CustomerID"] = string.IsNullOrWhiteSpace(text)
        ? DBNull.Value : (object)Convert.ToInt32(text);

Ответ 2

DR["CustomerID"] = !string.IsNullOrEmpty(TextBox1.Text)
                   ? Convert.ToInt32(TextBox1.Text)
                   : DBNull.Value;

Но вы также должны проверить, что это значение является действительным целым числом:

int value;
if(int.TryParse(TextBox1.Text, out value))
{
    DR["CustomerID"] = value;
}
else
{
    DR["CustomerID"] = DBNull.Value;
}

Ответ 3

вы можете сделать это следующим образом:

DR["CustomerID"] = string.IsNullOrEmpty(TextBox1.Text) ?
    null : Convert.ToInt32(TextBox1.Text);

Ответ 4

Прежде всего, конечно, поле должно быть установлено как NULL в базе данных.

И затем установите для него значение DBNull.Value

Ответ 5

Вы должны проверить сначала

if (TextBox1.Text.Length > 0)
{
   DR["CustomerID"] = Convert.ToInt32(TextBox1.Text); 
}
else
{
  DR["CustomerID"] = null;  
}

Ответ 6

Int32 Temp = 0;
if !(Int32.TryParse(TextBox1.Text,Temp))
    DR["CustomerID"] = DBNull.Value
else
    DR["CustomerID"] = Temp

Ответ 7

Вы можете использовать DBNull.

DR["CustomerID"] = (TextBox.Text.Length == 0) ? Convert.ToInt32(TextBox1.Text) : DBNull.Value;

Ответ 8

 if (TextBox1.Text.Trim() == String.Empty)
    {
        DR["CustomerID"] = null;
    }
    else
    {
        DR["CustomerID"] = Convert.ToInt32(TextBox1.Text);
    }

Ответ 9

DataTable dt = new DataTable();
DataRow DR = dt.NewRow();

if (String.IsNullOrEmpty(TextBox1.Text))
    DR["CustomerID"] = DBNull.Value;
else
    DR["CustomerID"] = Convert.ToInt32(TextBox1.Text);

Ответ 10

Если вы объявляете переменную Integer как int? он автоматически помещается в компилятор С#, и вы можете назначить значение null этой переменной. Например:

int? custID = null;

Я надеюсь, что это поможет

Ответ 11

Если null не может быть вставлено в DR["CustomerID"], вы можете использовать (int?)null вместо этого:

DR["CustomerID"] = string.IsNullOrEmpty(TextBox1.Text) ?
(int?) null : Convert.ToInt32(TextBox1.Text);