检查多列数据表 [英] check multiple columns datatable

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

问题描述

dt1看起来像:



dt1 looks like:

AdminNo      ModuleCode
111411H      EG1001
111411H      Eg1003
111380Y      EG2011





dt2看起来像:





dt2 looks like:

PaperNo    Module1    Module2   Module3 ....
1          EG1001     
2          EG1003     EG1001
3          EG2011





i想要检查dt1中每个模块对dt2的每一行和每一行。

例如:EG1001出现在col1,col2,col3 ......



i的代码如下:





i want to check for each modulecode in dt1 to each row and column of dt2.
Example: is EG1001 appearing in col1, col2, col3 ...

i have codes as follows:

Dim dt3 As New DataTable
dt3.Columns.Add("AdminNo", GetType(String))
dt3.Columns.Add("PaperNo", GetType(Integer))

Dim curmodule As String = String.Empty

For Each dr2 As DataRow In dt2.Rows

    curmodule = dr2("ModuleCode1").ToString

    For Each dr1 As DataRow In dt1.Rows
        If curmodule = dr1("ModuleCode").ToString Then


            Dim dt3row As DataRow
            dt3row = dt3.NewRow
            dt3row("AdminNo") = dr1("AdminNo")
            dt3row("PaperNo") = dr2("PaperNo")
            dt3.Rows.Add(dt3row)
            Me.DataGridView3.DataSource = dt3









它只对dt2中的一列进行检查。

任何人都帮帮我,谢谢!



its only checking against one column in dt2.
anyone help me out, thanks!

推荐答案

将循环更改为反向。例如



Change the loop to reverse. for example

For Each dr1 As DataRow In dt1.Rows
    var module=dr1("ModuleCode1").ToString
    For Each dr2 As DataRow In dt2.Rows</pre>



如果curmodule = dr1(ModuleCode)。ToString那么

//做逻辑





希望这有帮助


If curmodule = dr1("ModuleCode").ToString Then
//do the logic


Hope this helps


我编辑我的代码:
Dim dt3 As New DataTable
      dt3.Columns.Add("AdminNo", GetType(String)) '/*Add column AdminNo
      dt3.Columns.Add("PaperNo", GetType(Integer))

      Dim curmodule As String = String.Empty
      For Each dr1 As DataRow In dt1.Rows
          curmodule = dr1("ModuleCode").ToString
          For Each dr2 As DataRow In dt2.Rows
              Dim found As Boolean
              found = False
              For i = 0 To dt2.Columns.Count - 1

                  If curmodule = dr2(i).ToString Then
                      found = True
                      Dim dr3 As DataRow
                      dr3 = dt3.NewRow
                      dr3("AdminNo") = dr1("AdminNo")
                      dr3("PaperNo") = dr2("PaperNo")
                      dt3.Rows.Add(dr3)
                      DataGridView3.AutoGenerateColumns = True
                      Me.DataGridView3.DataSource = dt3

                  End If
              Next
          Next
      Next


这篇关于检查多列数据表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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