2014-01-16 4 views
0

Я использую datagridview для сохранения нескольких файлов .txt в папку. Столбец 1 - это имя файла, а столбец 2 - содержимое файла.Datagridview для нескольких файлов .txt

Я пытаюсь пропустить весь файл datagridview, но единственный .txt-файл, который создается, - это тот, где маленькая стрелка находится в заголовке строки. Это происходит, даже если у меня выделено/выделено несколько строк. Как сделать .txt-файлы для всех выбранных строк? Благодарю.

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 
    For Each row As DataGridViewRow In DataGridView1.SelectedRows 
     My.Computer.FileSystem.WriteAllText("D:\samplefolder\" & DataGridView1.SelectedCells(0).Value.ToString & ".txt", DataGridView1.SelectedCells(1).Value.ToString, False) 
    Next 
End Sub 

ответ

0

Вся точка a Для каждого цикла последовательный доступ к каждому элементу в списке. Ваша переменная управления контуром в этом коде - «строка», но вы никогда не используете эту переменную внутри цикла. Вы всегда используете те же две ячейки внутри цикла, чтобы вы продолжали писать один и тот же файл снова и снова. Внутри цикла «строка» содержит текущую строку, поэтому используйте ее. Получите две ячейки, которые вы хотите, из строки.

Кстати, полезно использовать Path.Combine для объединения частичных путей.

+0

Спасибо за ответ, но некоторые примеры кода вашего объяснения будет полезно. – user3080392

+1

Так будет немного усилий с вашей стороны. Вы отправили свой комментарий через 7 минут после моего. Какие усилия вы предприняли, чтобы следовать моим инструкциям за эти 7 минут? Инструкции просты. Следуйте за ними. Если вы попытаетесь и потерпите неудачу, я могу помочь, но если вы даже не попытаетесь, то почему я должен? – jmcilhinney

0

Следующий код работает для меня:

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 
For Each row As DataGridViewRow In DataGridView1.SelectedRows 
    My.Computer.FileSystem.WriteAllText("D:\samplefolder\" & row.Cells(0).Value.ToString & ".txt", row.Cells(1).Value.ToString, False) 
Next row 

End Sub

Смежные вопросы