2015-04-27 2 views
0

i'am новый программист и просто изучающие о Visual Basic, и завершить экзамены Данные, которые я естьVb.net Сохранить данные из DataGridView в TXT и загрузить его

Tool_1 отвертка
Tool_2 винт
Tool_3 Магнит

и еще много
я создать проект, есть Data Grid View (две колонки, инструменты & имена) и две кнопки (btSave & btOpen)
я просто попробовать с этим кодом

Private Sub btSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btSave.Click 
SaveGridData(DataGridView1, ThisFilename) 
End Sub 
    Private Sub SaveGridData(ByRef ThisGrid As DataGridView, ByVal Filename As String) 
     ThisGrid.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText 
     ThisGrid.SelectAll() 
     IO.File.WriteAllText(Filename, ThisGrid.GetClipboardContent().GetText.TrimEnd) 
     ThisGrid.ClearSelection() 
    End Sub 
    Private Sub btOpen_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btOpen.Click 
    LoadGridData(DataGridView1, ThisFilename) 
End Sub 

Private Sub LoadGridData(ByRef ThisGrid As DataGridView, ByVal Filename As String) 
     ThisGrid.Rows.Clear() 
     For Each THisLine In My.Computer.FileSystem.ReadAllText(Filename).Split(Environment.NewLine) 
      ThisGrid.Rows.Add(Split(THisLine, " ")) 
     Next 
    End Sub 

Когда я сохранить файл это не проблема файл TXT это нормально, но когда я хочу, чтобы загрузить Text «Tool_1 Отвертка» не расщепляется, но в «Инструменты» Столбец
есть решение?

+0

попробуйте использовать разделитель как запятую или что-то еще и сохраните файл, поэтому при попытке загрузить его. он будет легко разделен – Sriram

ответ

0

использование этого insetad вашего цикла в loadgriddata

For Each THisLine In My.Computer.FileSystem.ReadAllText(Filename).Split(Environment.NewLine) 
dim str as string() 
str=thisline.split(" ") 
ThisGrid.Rows.Add(str(0),str(1)) 
Next 

надеюсь, что это помогает.

+0

его ошибка в str = thisline.split ("") Сообщение об ошибке "Ошибка Значение типа '1-мерный массив строки' не может быть преобразовано в 'String'." – LukmanH

+0

теперь отредактировал code.check. –

0

Эй, я боролся с этим Aswell, но у меня есть некоторый код: полезную

экспорт ListView:

System.IO.Directory.CreateDirectory("C:\RS Account Maker\Accounts" & "\") 
    SaveFileDialog1.ShowDialog() 
    Dim Path As String = SaveFileDialog1.FileName 
    Dim AllItems As String = "" 

    Try 

     For Each item As ListViewItem In ListView1.Items 
      AllItems = AllItems & item.Text & "#" & item.SubItems(1).Text & "#" & item.SubItems(2).Text & vbNewLine 
     Next 

     AllItems = AllItems.Trim 

    Catch ex As Exception 
    End Try 


    Try 
     If My.Computer.FileSystem.FileExists(Path) Then 
      My.Computer.FileSystem.DeleteFile(Path) 
     End If 

     My.Computer.FileSystem.WriteAllText(Path, AllItems, False) 

    Catch ex As Exception 
     MsgBox("Error" & vbNewLine & ex.Message, MsgBoxStyle.Exclamation, "Error ") 
    End Try 

импорта ListView:

OpenFileDialog1.ShowDialog() 
    Dim Path As String = OpenFileDialog1.FileName 
    Dim AllItems As String 



    Try 
     AllItems = My.Computer.FileSystem.ReadAllText(Path) 

     Dim ItemLines As New TextBox 
     ItemLines.Text = AllItems 


     For Each line As String In ItemLines.Lines 

      Dim a1() As String = line.Split("#") 

      Dim ItemName As String = a1(0) 
      Dim SubItem1 As String = a1(1) 
      Dim SubItem2 As String = a1(2) 

      Dim Item As New ListViewItem(ItemName) 

      Item.SubItems.Add(SubItem1) 
      Item.SubItems.Add(SubItem2) 

      ListView1.Items.AddRange(New ListViewItem() {Item}) 

     Next 

    Catch ex As Exception 
     MsgBox("Error" & vbNewLine & ex.Message, MsgBoxStyle.Exclamation, "Error ") 
    End Try 
0

Следующая строка неверна.

ThisGrid.Rows.Add(Split(THisLine, " ")) 

В приведенном выше кодексе были внесены следующие изменения.

Dim ThisFilename As String = Application.StartupPath & "\MyData.dat" 

    Private Sub butSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 

     SaveGridData(Datagrid1, ThisFilename) 

    End Sub 

    Private Sub butLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 

     LoadGridData(Datagrid1, ThisFilename) 

    End Sub 

    Private Sub SaveGridData(ByRef ThisGrid As DataGridView, ByVal Filename As String) 

     ThisGrid.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText 

     ThisGrid.SelectAll() 

     IO.File.WriteAllText(Filename, ThisGrid.GetClipboardContent().GetText.TrimEnd) 

     ThisGrid.ClearSelection() 

    End Sub 

    Private Sub LoadGridData(ByRef ThisGrid As DataGridView, ByVal Filename As String) 

     ThisGrid.Rows.Clear() 

     For Each THisLine In My.Computer.FileSystem.ReadAllText(Filename).Split(Environment.NewLine) 

      ThisGrid.Rows.Add(Split(THisLine, ControlChars.Tab)) 

     Next 

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