Hi!
So.. Please help :D I've been trying for two days, but with no result.
I have the DataGridView with the ComboBox as first column. It looks like this:
STATUS | NAME | NUMBER | etc..
(combobox) John 000000
(combobox) Billy 111111
etc..
The values are upload by the button from text file, with "," behind every value, like .csv file. The combobox values are No contact, Busy. I set the DataGridView selection mode to row. So, i don't need to select every cell, i just need the whole row. Now i'm trying to do, that after click on for e.g.John, the whole row is saved to text file - it should looks like this:
2,John,000000,...,...,...
Next, after click on Billy, text file looks like:
2,John,000000,...,...,...
1,Billy,111111,...,...
Where value 1 is "No Contact", and 2 is "Busy".
Then i want to make the upload button for read the values from text file what i saved, and put this into DataGridView. e.g:
Text file:
2,John,000000,...,...,...
1,Billy,111111,...,...
Click upload button: DataGridView
2,John,000000,...,...,... > Busy,John,000000,...,...
1,Billy,111111,...,... > No Contact,Billy,111111,...,...
This is what i already have:
Public Class Start
Dim dataTable As New DataTable
Dim cmenu As New DataGridViewComboBoxColumn()
Private Sub IconButton2_Click(sender As Object, e As EventArgs) Handles IconButton2.Click
Dim thereader As New IO.StreamReader("HEHE\Desktop\data\data.txt", System.Text.Encoding.Default)
Dim sline As String = ""
Do
sline = thereader.ReadLine
If sline Is Nothing Then Exit Do
Dim thecolumns() As String = sline.Split(",")
Dim newrow As DataRow = dataTable.NewRow
newrow("Name") = thecolumns(0)
newrow("LastName") = thecolumns(1)
newrow("Number") = thecolumns(2)
newrow("Address") = thecolumns(3)
newrow("Age") = thecolumns(4)
newrow("E-mail") = thecolumns(5)
dataTable.Rows.Add(newrow)
Loop
thereader.Close()
clients.DataSource = dataTable
clients.Columns(3).CellTemplate.Style.ForeColor = RGBColors.color7
clients.Columns(3).CellTemplate.Style.Font = New Font(clients.DefaultCellStyle.Font, FontStyle.Bold)
clients.Columns("Address").Width = 200
clients.Columns("E-mail").Width = 200
clients.Columns("Age").Width = 70
clients.Columns("Name").ReadOnly = True
clients.Columns("LastName").ReadOnly = True
clients.Columns("Number").ReadOnly = True
clients.Columns("Address").ReadOnly = True
clients.Columns("Age").ReadOnly = True
clients.Columns("E-mail").ReadOnly = True
Me.Text = dataTable.Rows.Count & "rows"
IconButton2.Enabled = False
End Sub
Private Sub Start_Load(sender As Object, e As EventArgs) Handles MyBase.Load
With dataTable
.Columns.Add("Name", System.Type.GetType("System.String"))
.Columns.Add("LastName", System.Type.GetType("System.String"))
.Columns.Add("Number", System.Type.GetType("System.Decimal"))
.Columns.Add("Address", System.Type.GetType("System.String"))
.Columns.Add("Age", System.Type.GetType("System.Decimal"))
.Columns.Add("E-mail", System.Type.GetType("System.String"))
End With
clients.BackgroundColor = RGBColors.color4
clients.Columns.Add(cmenu)
cmenu.HeaderText = "Status"
cmenu.Name = "cmb"
cmenu.MaxDropDownItems = 4
cmenu.Items.Add("Brak kontaktu")
cmenu.Items.Add("Oddzwonienie")
cmenu.ReadOnly = False
End Sub
End Class
What I have tried:
Dim swWriter As New IO.StreamWriter("HEHE\Desktop\data\data.txt")
Dim LineToWrite As String = String.Empty
Try
For _Row As Integer = 0 To clients.Rows.Count - 1
LineToWrite = String.Empty
For _Column As Integer = 0 To clients.Columns.Count - 1
LineToWrite &= "," & clients.Rows(_Row).Cells(_Column).Value.ToString
Next
LineToWrite = LineToWrite.Remove(0, 1)
swWriter.WriteLine(LineToWrite)
Next
swWriter.Flush()
swWriter.Close()
MessageBox.Show("Data Saved Successfully")
Catch ex As Exception