GridView Reader返回重复值ASP.NET

时间:2014-05-27 05:46:12

标签: asp.net vb.net gridview datatable

我正在尝试创建一个包含我从GridView列中读取的项目的数据表。 GridView I读者看起来像这样:

 SELECT      COURSE       NAME

 Select      Course_1     USER_1
 Select      Course_2     USER_2
 Select      Course_3     USER_3

这是我的代码:

Dim dt As New DataTable()
Dim dtcopy As New Datatable()

dt.Columns.Add("File",GetType(String))

For Each row As GridViewRow In GV_PDBC.Rows
            For i As Integer = 1 To GV_PDBC.Rows.Count - 1
                strname = row.Cells(2).Text
                 dt.Rows.Add(strname)

                 dtcopy.Merge(dt, True, MissingSchemaAction.AddWithKey)
           Next
        Next

重复阅读专栏。以下是数据表结果:

 USER_1
 USER_1
 USER_1
 USER_1
 USER_1
 USER_1
 USER_1
 USER_2
 USER_2
 ...

我想我只是遗漏了一些东西。请帮忙。提前谢谢

2 个答案:

答案 0 :(得分:0)

为此编写代码的正确方法:

Dim dt As New DataTable()
Dim dtcopy As New Datatable()

dt.Columns.Add("File",GetType(String))

'This loop will iterate all gridview rows
For Each row As GridViewRow In GV_PDBC.Rows 

    'Determine the row type.
    if row.RowType = DataControlRowType.DataRow Then
        strname = row.Cells(2).Text
        dt.Rows.Add(strname)
    End If
Next

答案 1 :(得分:0)

重复值是第二个循环的bcz,

For i As Integer = 1 To GV_PDBC.Rows.Count - 1

Next

你需要删除for循环,结果将是

USER_1

USER_2

USER_3

代码将是:

    Dim dt As New DataTable()
    Dim dtcopy As New DataTable()
    dt.Columns.Add("File", GetType(String))
    For Each row As GridViewRow In GV_PDBC.Rows
        strname = row.Cells(2).Text
        dt.Rows.Add(strname)
        dtcopy.Merge(dt, True, MissingSchemaAction.AddWithKey)
    Next