2016-07-15 10 views
1

хорошее утро всеNull Value DataGridView

У меня есть небольшая проблема с dgv. Im пытается заполнить его результатом функции, которая показывает имя файлов в папке и количество строк в каждом файле.

Но по какой-то причине у меня есть нуль-ваула на datagrid, и я не знаю, как его удалить. I`ve делал это без особого знания vb.net или вообще так что любая помощь будет apreciated

Здесь кодирование код:

Imports System 
Imports System.Linq 
Imports System.Collections 
Imports System.IO 
Imports System.IO.StreamReader 
Imports System.IO.DirectoryInfo 

Public Class MainForm 

    'asigna la var como datatable 
    Dim results1 As New DataTable 

    Private Sub Boton_Buscar_Click(sender As System.Object, e As System.EventArgs) Handles Boton_Buscar.Click 

     'muestra el dialogo y guarda el dir 
     FBD1.ShowDialog() 
     TextBox1.Text = FBD1.SelectedPath 
     FSW1.Path = TextBox1.Text 

     'indica el datasource al datagrid 
     Try 
      DGV1.DataSource = GetLineCount() 

     Catch ex As Exception 
      MsgBox(ex.Message) 
     End Try 

    End Sub 

    'devuelve archivos y su num de lineas 
    Public Function GetLineCount() As DataTable 

     results1.Columns.Add(0) 
     results1.Columns.Add(1) 


     'array para los tipos de archivo 
     Dim MyFileArray As [String]() = New [String](7) {"*.txt", "*.doc", "*.docx", "*.odt", "*.pdf", "*.rtf", _ 
                 "*.csv", "*.vb"} 

     'array para los directorios 
     Dim MyDirectoryArray As [String]() = New [String](0) {TextBox1.Text} 

     ' loop directorios 
     For Each sd As [String] In MyDirectoryArray 
      Dim dir As New DirectoryInfo(sd) 

      'loop los tipos de archivos 
      For Each sFileType As [String] In MyFileArray 

       'loop los archivos ante el contador 
       For Each file__1 As FileInfo In dir.GetFiles(sFileType) 

        Dim LineCount = System.IO.File.ReadAllLines(file__1.FullName).Count() 

        'alimenta el datagrid con los datos nuevos 
        results1.Rows.Add() 
        results1.Rows.Add.Item(0) = "FileName: " & file__1.FullName 
        results1.Rows.Add.Item(1) = "LineCount: " & LineCount 

       Next 

      Next 

     Next 

     Return results1 

    End Function 

End Class 

And here is the output im getting:

Любая помощь очень приветствуется, иметь хороший день

ответ

1

Причина, по которой вы получаете нулевые значения, заключается в том, что вы пытаетесь добавить строку по одной ячейке за раз.

Вместо

results1.Rows.Add() 
results1.Rows.Add.Item(0) = "FileName: " & file__1.FullName 
results1.Rows.Add.Item(1) = "LineCount: " & LineCount 

Попробуйте

results1.Rows.Add("FileName: " & file__1.FullName, "LineCount: " & LineCount) 

Ваш текущий код добавляет три строки вместо 1 каждый раз: сначала пустую строку, затем строку с ячейкой (0) заполненную и затем нуль , а затем строка с нулем, а затем ячейка (1) заполнена.

+1

О, боже, это сработало! Большое спасибо !!. Вы только что сделали свой день, спасибо! –