将数据插入具有多个列的单行数据表中 [英] Insert data into datatable on single row with more than one column

查看:56
本文介绍了将数据插入具有多个列的单行数据表中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何从问题中将数据插入数据表?

Visual Studio 2015 |控制台应用程序



我有3个名为dt_A,dt_B,dt_C的数据表。我已经对SQL进行了查询以计算表行数并将SQLDataReader填充到DataTable中。涉及的DataTable是dt_A(从serverA获取)和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 字符串
对于i = 0 至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 )。项目(i)
val2 = dt_B.Rows( 0 )。项目(i)
nrow(i)= val1 - val2
dt_C.Rows.Add(nrow)
下一步



第二个For Next,是显示错误显示。应该在单行上添加。相反,在lopping时,它会将下一个值添加到下一列但下一行。



我希望下一个值位于下一列和行(0)上。不应该做任何其他行。我尝试过其他但显示为空的



此处的图片视图 [ ^ ]



我的尝试:



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)

下一步

解决方案

在第二个for循环外移动创建和添加dt_C行

 Dim nrow As DataRow = dt_diff.NewRow 
For i = 0 至dt_diff.Columns.Count - 1
val1 = dt_local.Rows( 0 )。项目(i)
val2 = dt_azure.Rows( 0 )。项目(i)
nrow(i)= val1 - val2
下一个
dt_diff.Rows.Add(nrow)





干杯


How to insert data into datatable from the question?
Visual Studio 2015 | Console Application

I have 3 datatable named dt_A, dt_B, dt_C. I have made queries to SQL for counting table row count and fill SQLDataReader into DataTable. Involved DataTable is dt_A (grab from serverA) and dt_B (grab from serverB). While dt_C will contain a total different count from (dt_A minus dt_B).

Assuming both dt_A and dt_B should have this column:

dt_A
count_tbl1...........390 
count_tbl2.............9
count_tbl3...........500


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


Assume dt_C will hold differentiation from above data

dt_C
count_tbl1.............5
count_tbl2.............9
count_tbl3............20



dt_A and dt_B automatically fill on queries. dt_C will insert manually.

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


The second For Next, is showing wrong display. It should be adding on single row. Instead, while lopping, it will add next value to next column but next row.

I want next value to be on next column and on row(0). No any other row should be made. I have try some other but shows empty

image view here[^]

What I have tried:

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

解决方案

Move the creation and adding of the dt_C row outside the second for-loop

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)



Cheers


这篇关于将数据插入具有多个列的单行数据表中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆