Luiey Ichigo Ответов: 1

Вставить данные в таблицу на одну строку более одного столбца


Как вставить данные в datatable из вопроса?
Visual Studio 2015 / Консольное Приложение

У меня есть 3 datatable с именами dt_A, dt_B, dt_C. Я сделал запросы к SQL для подсчета количества строк таблицы и заполнения SQLDataReader в DataTable. Участвует DataTable является dt_A (схватить от сервера) и dt_B (захватите с сервере serverb). В то время как dt_C будет содержать общее количество, отличное от (dt_A минус dt_B).

Предполагая, что и dt_A, и dt_B должны иметь этот столбец:
dt_A
count_tbl1...........390 
count_tbl2.............9
count_tbl3...........500

dt_B
count_tbl1...........385 
count_tbl2.............0
count_tbl3...........480

Предположим, что dt_C будет содержать дифференцирование от вышеприведенных данных
dt_C
count_tbl1.............5
count_tbl2.............9
count_tbl3............20


dt_A и dt_B автоматически заполняют запросы. dt_C будет вставлен вручную.

Dim val1, val2 As Integer
Dim colname As String
For i = 0 To dt_A.Columns.Count - 1
    colname = dt_A.Columns(i).ToString
    dt_C.Columns.Add(colname)
Next
For i = 0 To dt_C.Columns.Count - 1
    Dim nrow As DataRow = dt_C.NewRow
    val1 = dt_A.Rows(0).Item(i)
    val2 = dt_B.Rows(0).Item(i)
    nrow(i) = val1 - val2
    dt_C.Rows.Add(nrow)
Next

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

Я хочу, чтобы следующее значение было в следующем столбце и в строке (0). Никакой другой ряд не должен быть сделан. Я пробовал некоторые другие, но показывает пустой

просмотр изображения здесь[^]

Что я уже пробовал:

Dim val1, val2 как целое число
Dim colname как строка
Для i = 0-dt_A.Columns.Количество-1
colname = dt_A.Столбцы(я).Метод toString
dt_C.Столбцы.Добавить (colname)
Следующий
Для i = 0-dt_C.Columns.Количество-1
Дим номер строки как объекта datarow = dt_C.Невров
val1 = dt_A. Rows(0). Item (i)
val2 = dt_B. Rows(0). Item (i)
nrow (i) = val1-val2
dt_C.Строк.Добавить(номер строки)
Следующий

1 Ответов

Рейтинг:
9

Estys

Переместите создание и добавление строки dt_C за пределы второго цикла for

Dim nrow As DataRow = dt_diff.NewRow
For i = 0 To dt_diff.Columns.Count - 1
    val1 = dt_local.Rows(0).Item(i)
    val2 = dt_azure.Rows(0).Item(i)
    nrow(i) = val1 - val2
Next
dt_diff.Rows.Add(nrow)


Овации


Luiey Ichigo

Да.. Я нахожу, что это можно сделать. Лол.. Я тоже кое-что изменил в коде.

Dim val1, val2 как целое число
Dim colname как строка
Для i = 0-dt_A.Columns.Количество-1
colname = dt_A.Столбцы(я).Метод toString
dt_C.Столбцы.Добавить (colname)
Следующий
Дим инт(dt_C.Столбцы.Count-1) Как Целое Число
Для i = 0-dt_C.Columns.Количество-1
val1 = dt_A. Rows(0). Item (i)
val2 = dt_B. Rows(0). Item (i)
int (i) = val1-val2
Следующий
Дим НДР в качестве объекта datarow = dt_C.Невров
Для i = 0 до int.Длина - 1
НДР(dt_A.Столбцы(я).ToString) = int (i)
Следующий
dt_C.Строк.Добавить(НДР)

Все показывает одну линию