Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/34: Рейтинг темы: голосов - 34, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
1

Как занести данные из текстового файла в DataGridView?

26.05.2017, 00:32. Показов 6999. Ответов 62
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер! У меня возникла проблема с массивом. Делаю базу данных из анкет, затем по критериям нужно будет найти анкеты. Нужно достать из txt файла данные и засунуть в DataGrid. Как это сделать? Вот как выглядит окно поиска
Миниатюры
Как занести данные из текстового файла в DataGridView?  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.05.2017, 00:32
Ответы с готовыми решениями:

Как занести данные в БД из DataGridView?
И вот еще вопрос, как сне сделать так, чтобы данные заносились в бд? con2.Open();...

Навигация по datagridview (данные с текстового файла)
Всем доброго дня! Еще созрел один вопросик. Активно начинаю изучать работу datagridview с...

Как занести данные с DataGridView в Access
Всем доброго дня! Вот как-то так у меня заполняется DataGridView данными void Get_Results () //...

Как занести данные в таблицу dataGridView
Пользователь вводит имя, год рождение и баллы. Они должны попасть в 3 столбца. Помогите плиз!!!!

62
92 / 74 / 24
Регистрация: 31.03.2013
Сообщений: 257
26.05.2017, 07:22 2
Значит по сути бд нет, а есть текстовый файл?
Ищешь в файле нужные данные и заносишь:
VB.NET
1
2
DataGridView1.Item(0, 0).Value = FIO
DataGridView1.Item(0, 1).Value = BirthDay
0
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
26.05.2017, 09:44  [ТС] 3
Да, есть файл
А какой код будет у form полностью?
0
92 / 74 / 24
Регистрация: 31.03.2013
Сообщений: 257
26.05.2017, 10:48 4
Цитата Сообщение от Владлена Посмотреть сообщение
А какой код будет у form полностью?
Для начала надо определить как разделяются данные в текством файле. Предположим, что через запятую ","
Код
Иванов_В.В.,01,01,1999,Москва и т.д.
При загрузке формы:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim ReadLine As IO.StreamReader
Dim line As String
Dim i as integer
ReadLine = FileIO.FileSystem.OpenTextFileReader(MyTxtFile) 'Открываем для чтения
 
Do Until ReadLine.EndOfStream 'Если конец файла - выходим из цикла
line = ReadLine.ReadLine 'считываем строку
DataGridView1.Item(i, 0).Value = split(line, ",").GetValue(0)
DataGridView1.Item(i, 1).Value = split(line, ",").GetValue(1)
DataGridView1.Item(i, 2).Value = split(line, ",").GetValue(2)
'И т.д.
i+=1 'На следующую строку
Loop
ReadLine.Close() 'Закрываем файл для чтения
Думаю понятен смысл.
1
4652 / 3609 / 854
Регистрация: 02.02.2013
Сообщений: 3,489
Записей в блоге: 2
26.05.2017, 14:13 5
Лучший ответ Сообщение было отмечено Yury Komar как решение

Решение

Можно и так
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim fName As String = IO.Path.Combine(Application.StartupPath, "tst.txt")
    Dim records() As String = IO.File.ReadAllLines(fName, System.Text.Encoding.Default)
    Dim bb As New List(Of Biography)
    For Each rr As String In records
        bb.Add(New Biography(rr.Split(","c)))
    Next
    DataGridView1.DataSource = bb
End Sub
'…
Public Class Biography
    Public Sub New(ByVal pp() As String)
        _FIO = pp(0)
        _dd = CInt(pp(1))
        _mm = CInt(pp(2))
        _yyyy = CInt(pp(3))
        _town = pp(4)
        _telf = CLng(pp(5))
    End Sub
    Public Property FIO As String
    Public Property dd As Integer
    Public Property mm As Integer
    Public Property yyyy As Integer
    Public Property town As String
    Public Property telf As Long
End Class
5
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
29.05.2017, 21:54  [ТС] 6
Хорошо, спасибо) А как описать кнопку, которая будет запускать поиск по критериям?
0
4652 / 3609 / 854
Регистрация: 02.02.2013
Сообщений: 3,489
Записей в блоге: 2
29.05.2017, 22:55 7
Можно так
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    Dim fName As String = IO.Path.Combine(Application.StartupPath, "tst.txt")
    Dim records() As String = IO.File.ReadAllLines(fName, System.Text.Encoding.Default)
    Dim bb As New List(Of Biography)
    For Each rr As String In records
        bb.Add(New Biography(rr.Split(","c)))
    Next
    'требуемое условие (написал для примера)
    'Dim sel = From b As Biography In bb Where b.yyyy > 1998 Select b.FIO, b.town, b.telf, b.yyyy
    'Dim sel = From b As Biography In bb Where b.yyyy > 1998 And b.yyyy < 2010 Select b.FIO, b.town, b.telf, b.yyyy
    Dim sel = From b As Biography In bb Where b.town = "Москва2"
    DataGridView1.DataSource = Nothing
    If sel.Count > 0 Then
        DataGridView1.DataSource = sel.ToArray
    Else
        MsgBox("Нет данных!")
    End If
End Sub
1
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
29.05.2017, 23:13  [ТС] 8
с кодом который вы прислали для form очень много ошибок вылезло, взяла 1-ый

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim ReadLine As IO.StreamReader
Dim line As String
Dim i as integer
ReadLine = FileIO.FileSystem.OpenTextFileReader(MyTxtFile) 'Открываем для чтения
 
Do Until ReadLine.EndOfStream 'Если конец файла - выходим из цикла
line = ReadLine.ReadLine 'считываем строку
DataGridView1.Item(i, 0).Value = split(line, ",").GetValue(0)
DataGridView1.Item(i, 1).Value = split(line, ",").GetValue(1)
DataGridView1.Item(i, 2).Value = split(line, ",").GetValue(2)
'И т.д.
i+=1 'На следующую строку
Loop
ReadLine.Close() 'Закрываем файл для чтения
Как под него кнопку сделать?
0
4652 / 3609 / 854
Регистрация: 02.02.2013
Сообщений: 3,489
Записей в блоге: 2
29.05.2017, 23:26 9
Цитата Сообщение от Владлена Посмотреть сообщение
очень много ошибок вылезло
М.б. стоит разобраться, что это за ошибки? Код рабочий и проблемы на вашей стороне.
1
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
29.05.2017, 23:36  [ТС] 10
Сейчас пришлю фото.
0
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
29.05.2017, 23:44  [ТС] 11
Вложение 838623 вот
0
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
29.05.2017, 23:50  [ТС] 12
Вот лучше качество.
[ATTACH][ATTACH][ATTACH]
Как занести данные из текстового файла в DataGridView?
[/ATTACH][/ATTACH][/ATTACH]
Миниатюры
Как занести данные из текстового файла в DataGridView?   Как занести данные из текстового файла в DataGridView?   Как занести данные из текстового файла в DataGridView?  

0
4652 / 3609 / 854
Регистрация: 02.02.2013
Сообщений: 3,489
Записей в блоге: 2
29.05.2017, 23:58 13
Владлена,
Время позднее поэтому я вам скину рабочий проект. Попробуйте в нем разобраться и приспособить к своим требованиям.
Вложения
Тип файла: rar tstPrj.rar (11.4 Кб, 54 просмотров)
0
4652 / 3609 / 854
Регистрация: 02.02.2013
Сообщений: 3,489
Записей в блоге: 2
30.05.2017, 00:40 14
Если в VS2008 не воспринимает, попробуйте переписать класс
Кликните здесь для просмотра всего текста
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Public Class Biography
    Private _FIO, _town As String
    Private _dd, _mm, _yyyy As Integer
    Private _telf As Long
    Public Sub New(ByVal pp() As String)
        _FIO = pp(0)
        _dd = CInt(pp(1))
        _mm = CInt(pp(2))
        _yyyy = CInt(pp(3))
        _town = pp(4)
        _telf = CLng(pp(5))
    End Sub
    Public Property FIO As String
        Get
            Return _FIO
        End Get
        Set(value As String)
            _FIO = value
        End Set
    End Property
    Public Property dd As Integer
        Get
            Return _dd
        End Get
        Set(value As Integer)
            _dd = value
        End Set
    End Property
    Public Property mm As Integer
        Get
            Return _mm
        End Get
        Set(value As Integer)
            _mm = value
        End Set
    End Property
    Public Property yyyy As Integer
        Get
            Return _yyyy
        End Get
        Set(value As Integer)
            _yyyy = value
        End Set
    End Property
    Public Property town As String
        Get
            Return _town
        End Get
        Set(value As String)
            _town = value
        End Set
    End Property
    Public Property telf As Long
        Get
            Return _telf
        End Get
        Set(value As Long)
            _telf = value
        End Set
    End Property
End Class
0
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
30.05.2017, 20:27  [ТС] 15
Вылезла ошибка: "withevents переменная FIO неявно определяет "_FIO", которое вступает в противоречие с членом, имеющим такое же имя в form3" подскажите что нибудь?
0
4652 / 3609 / 854
Регистрация: 02.02.2013
Сообщений: 3,489
Записей в блоге: 2
30.05.2017, 20:32 16
Владлена, выложите ваш проект (или код, относящийся к данной теме).
0
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
30.05.2017, 20:35  [ТС] 17
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
Public Class Form3 
 Dim keyascii As Integer 
 Dim _names, _town As String 
 Dim _dd, _mm, _yyyy As Integer 
 Dim _telf As Long 
 
 
 
 Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged 
 If IsNumeric(TextBox1.Text) Then 
 MsgBox("Ввод только букв!") 
 End If 
 'InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture( _' 
 'New Globalization.CultureInfo("ru-RU"))' 
 
 If InputLanguage.CurrentInputLanguage.LayoutName = "Русская" Then 
 
 Else 
 InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture( _ 
 New Globalization.CultureInfo("ru-RU")) 
 'MsgBox("Ошибка! Ввод только русскими буквами!") 
 TextBox1.Text = "" 
 End If 
 
 If Chr(keyascii) = "en-US" Then 
 keyascii = Asc("ru-RU") 
 
 End If 
 
 'MsgBox(InputLanguage.CurrentInputLanguage.LayoutName) 
 End Sub 
 
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
 Beep() 
 Dim message As String 
 Dim buttonsandicons As Integer 
 Dim title As String 
 Dim response As String 
 message = "Хотите выйти?" 
 title = "Выход" 
 buttonsandicons = vbYesNo + vbQuestion 
 response = MsgBox(message, buttonsandicons, title) 
 If response = vbYes Then 
 End 
 End If 
 End Sub 
 
 
 
 Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
 Private class Biography() 
 
 Private Sub New(ByVal pp() As String) 
 _names = pp(0) 
 _dd = CInt(pp(1)) 
 _mm = CInt(pp(2)) 
 _yyyy = CInt(pp(3)) 
 _town = pp(4) 
 _telf = CLng(pp(5)) 
 End Sub 
 Public Property names() As String 
 Get 
 Return _names 
 End Get 
 Set(ByVal value As String) 
 _names = value 
 End Set 
 End Property 
 Public Property dd() As Integer 
 Get 
 Return _dd 
 End Get 
 Set(ByVal value As Integer) 
 _dd = value 
 End Set 
 End Property 
 Public Property mm() As Integer 
 Get 
 Return _mm 
 End Get 
 Set(ByVal value As Integer) 
 _mm = value 
 End Set 
 End Property 
 Public Property yyyy() As Integer 
 Get 
 Return _yyyy 
 End Get 
 Set(ByVal value As Integer) 
 _yyyy = value 
 End Set 
 End Property 
 Public Property town() As String 
 Get 
 Return _town 
 End Get 
 Set(ByVal value As String) 
 _town = value 
 End Set 
 End Property 
 Public Property telf() As Long 
 Get 
 Return _telf 
 End Get 
 Set(ByVal value As Long) 
 _telf = value 
 End Set 
 End Property 
 
 
 
 
 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 
 TextBox1.Text = "" 
 MaskedTextBox1.Text = "" 
 ComboBox1.Text = "" 
 End Sub 
 
 
 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 
 Dim fName As String = IO.Path.Combine(Application.StartupPath, "tst.txt") 
 Dim records() As String = IO.File.ReadAllLines(fName, System.Text.Encoding.Default) 
 Dim bb As New List(Of Biography) 
 For Each rr As String In records 
 bb.Add(New Biography(rr.Split(","c))) 
 Next 
 'требуемое условие (написал для примера) 
 'Dim sel = From b As Biography In bb Where b.yyyy > 1998 Select b.FIO, b.town, b.telf, b.yyyy 
 'Dim sel = From b As Biography In bb Where b.yyyy > 1998 And b.yyyy < 2010 Select b.FIO, b.town, b.telf, b.yyyy 
 Dim sel = From b As Biography In bb Where b.town = "Москва2" 
 DataGridView1.DataSource = Nothing 
 If sel.Count > 0 Then 
 DataGridView1.DataSource = sel.ToArray 
 Else 
 MsgBox("Нет данных!") 
 End If 
 End Sub 
End Class
Вот весь код вместе с вашим
0
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
30.05.2017, 20:37  [ТС] 18
Вот что вылезает
Как занести данные из текстового файла в DataGridView?
0
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
30.05.2017, 20:44  [ТС] 19
С ФИО нашла в чем подвох, а вот public class и sub нет
Ошибка номер 3 на скрине
0
4652 / 3609 / 854
Регистрация: 02.02.2013
Сообщений: 3,489
Записей в блоге: 2
30.05.2017, 21:04 20
Ну так нельзя.
Вы в процедуру Form3_Load (Class Form3) попытались впихнуть код, относящийся к описанию другого класса (Biography). Посмотрите проект, что я выложил, как там описываются классы. Кроме того поля в классе Biography это пример, я ведь не знаю какие поля в ваших данных.
Потом в Button2_Click вы целиком использовали мой код, но я, то предложил все это как пример. У вас же наверняка и файл с другим именем, возможно и разделители в файле другие.
Кроме того в проекте еще две формы и с ними вероятно тоже проблемы.
Для начала определите класс Biography как положено (за границами класса Form3). Обратите внимание, процедура Form3_Load обязана иметь закрывающий оператор End Sub.
0
30.05.2017, 21:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2017, 21:04
Помогаю со студенческими работами здесь

Как занести данные через TextBox в DataGridView
У меня есть таблица: Номер, фамилия, имя, телефон.. а как сделать чтобы пользователь вводил в...

Вывести в datagridview данные из текстового файла, находящегося в ресурсах проекта
Всем доброго дня. Есть текстовый файл в ресурсах проекта вида: Россия Латвия Литва Эстония...

Как занести содержание текстового файла в одну строку?
Нужно занести содержание текстового файла в одну строку. Делаю так: CFile m_pFile;...

Как прочитать данные из файла и занести их в класс
Здравствуйте. Мне необходима ваша помощь в следующем вопросе. У меня имеется файл текстовый файл,в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru