Как установить один элемент в массиве при установке массива? - PullRequest
0 голосов
/ 19 сентября 2019

Я хочу заполнить новый datarow из массива int.Я установил массив и хочу, чтобы одна ячейка в середине массива была нулевой.Как мне нужно установить элемент NULL в массиве?

Я попытался "NULL", "DBNull.Value" это не работает.

DataRow dr = dt.NewRow();
int[] codCell = { v1, v2, Null,v3};
while (i < codCell.Length)
{
    dr[i] = codCell[i];
    i++;
}
myTable.Rows.Add(dr);

1 Ответ

0 голосов
/ 19 сентября 2019

Theres 2 проблемы здесь, 1, что вам нужно использовать int?для массивов, если вы хотите нули (как говорит Стефан).Другое заключается в том, что в DataTable вы должны установить значение DBNull.value.

Также, если myTable и dt не являются тем же экземпляром, который вы должны использовать ImportRow, чтобы скопировать строку в другую таблицу.

DataTable dt = new DataTable();
dt.Columns.Add("V1",typeof(int));
dt.Columns.Add("V2",typeof(int));
dt.Columns.Add("V3",typeof(int));
dt.Columns.Add("V4",typeof(int));

DataTable myTable = dt.Clone();

int v1 = 1;
int v2 = 2;
int v3 = 3;

int i = 0;

DataRow dr = dt.NewRow();
int?[] codCell = { v1, v2, null, v3 };
while (i < codCell.Length)
{
    dr[i] = codCell[i] ?? (object)DBNull.Value;
    i++;
}

myTable.ImportRow(dr);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...