Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 10
.NET 3.x

Добавление записей в DataSet

15.10.2013, 16:36. Показов 1703. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хлопцы подскажите как задать индекс строке добавления данных?
выдается сообщение что данная строка уже присутствует в таблице:


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
Dim newClientsRow As reportsDataSet.ClientsRow
        newClientsRow = ReportsDS.Clients.NewClientsRow()
 
        Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("c:\newdata.csv")
            MyReader.TextFieldType = FileIO.FieldType.Delimited
            MyReader.SetDelimiters(",")
            Dim currentRow As String()
            While Not MyReader.EndOfData
                Try
                    currentRow = MyReader.ReadFields()
 
                    Dim currentField As String
                    For Each currentField In currentRow
                        newClientsRow.id = Guid.NewGuid()
                        newClientsRow.date_time = Replace(currentRow(0), "2012", My.Settings.Year)
                        newClientsRow.name_car = RTrim(currentRow(1))
                        newClientsRow.temp = Replace(currentRow(2), ".", ",")
                        newClientsRow.volume = Replace(currentRow(3), ".000000", "")
                        newClientsRow.number_of_tank = currentRow(4)
                        newClientsRow.type_of_car = currentRow(5)
                    Next
                Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
                    MsgBox("Line " & ex.Message & _
                    "is not valid and will be skipped.")
                End Try
            End While
            ReportsDS.Clients.Rows.Add(newClientsRow)
        End Using
        ReportsDS.Clients.AcceptChanges()
        ClientsTableAdapter.Update(newClientsRow)

Заранее спасибо!!!!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.10.2013, 16:36
Ответы с готовыми решениями:

Добавление полей связи в таблицы DataSet
Подскажите, пожалуйста, как добавить поля связи в таблицы DataSet. Имеется XML-файл - дерево представлено на миниатюре. Загружаю...

Добавление записей в БД Access
Здравствуйте. Есть код программы для добавления записей в БД (Access). Но этот код не работает, помогите выявить ошибку. Есть 2 таблицы:...

Поиск и добавление записей в Excel
Всем доброго времени суток) стоит такая задача: На форме есть кнопка и текстовое поле. В текстовое поле вводиться значение. Есть...

3
 Аватар для dimsaratov
356 / 295 / 78
Регистрация: 02.10.2013
Сообщений: 476
Записей в блоге: 5
17.10.2013, 21:15
1 Инициализация newclientsrows у тебя за пределами цикла
2 Добавление новой строки в DataTable также за пределами цикла, так ты добавишь только одну строку, так задумано?
3 Перед обновление DataAdaper обновлять таблицу (AcceptChanges) не следуетг
1
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 10
21.10.2013, 08:41  [ТС]
Спасибо огромное, но проблема была решена через **** но решена =)
Подскажите как сделать это более правильно?

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
Me.ClientsTableAdapter.Fill(Me.ReportsDS.Clients)
        DGV_Main.AutoGenerateColumns = True
        Dim newClientsRow As reportsDataSet.ClientsRow
        newClientsRow = ReportsDS.Clients.NewClientsRow()
 
        Dim myCol As New Collection
        Dim Buf As String
 
        Microsoft.VisualBasic.FileOpen(1, "c:\newdata.csv", OpenMode.Input)
        Do While Not EOF(1)
            Buf = Microsoft.VisualBasic.FileSystem.LineInput(1)
            myCol.Add(Buf + vbNewLine)
        Loop
        Microsoft.VisualBasic.FileSystem.FileClose(1)
 
redim_:
        If myCol.Count <> 0 Then
            For j As Integer = 1 To myCol.Count
                Dim new_line() As String = Split(myCol(j), ",")
                newClientsRow.id = Guid.NewGuid()
                newClientsRow.date_time = Replace(new_line(0), "2012", My.Settings.Year)
                newClientsRow.name_car = RTrim(new_line(1))
                newClientsRow.temp = Replace(new_line(2), ".", ",")
                newClientsRow.volume = Replace(new_line(3), ".000000", "")
                newClientsRow.number_of_tank = new_line(4)
                newClientsRow.type_of_car = new_line(5)
            Next
        End If
 
        ReportsDS.Clients.Rows.Add(newClientsRow)
        ClientsTableAdapter.Update(newClientsRow)
        ClientsTableAdapter.Fill(ReportsDS.Clients)
 
        myCol.Remove(myCol.Count)
        Microsoft.VisualBasic.FileOpen(2, "c:\newdata.csv", OpenMode.Output)
        For i = 1 To myCol.Count
            Print(2, myCol(i))
        Next i
        Microsoft.VisualBasic.FileSystem.FileClose(2)
        If myCol.Count > 0 Then GoTo redim_
0
 Аватар для dimsaratov
356 / 295 / 78
Регистрация: 02.10.2013
Сообщений: 476
Записей в блоге: 5
21.10.2013, 21:34
Попробуй так:

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
Dim newClientsRow As DataRow 'Изменено
Dim currentRow As String()
Dim rows As Integer
     Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("c:\newdata.csv")
             MyReader.TextFieldType = FileIO.FieldType.Delimited
             MyReader.SetDelimiters(",")
             While Not MyReader.EndOfData
                    newClientsRow = ReportsDS.Clients.NewRow 'Изменено
                    Try
                         currentRow = MyReader.ReadFields()
                         Dim currentField As String
                         For Each currentField In currentRow
                               newClientsRow.id = Guid.NewGuid()
                               newClientsRow.date_time = Replace(currentRow(0), "2012", My.Settings.Year)
                               newClientsRow.name_car = RTrim(currentRow(1))
                               newClientsRow.temp = Replace(currentRow(2), ".", ",")
                               newClientsRow.volume = Replace(currentRow(3), ".000000", "")
                               newClientsRow.number_of_tank = currentRow(4)
                               newClientsRow.type_of_car = currentRow(5)
                         Next
                         ReportsDS.Clients.Rows.Add(newClientsRow)   'Изменено
                    Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
                         MsgBox("Line " & ex.Message & _
                         "is not valid and will be skipped.")
                    End Try
            End While
     End Using
ClientsTableAdapter.Update(ReportsDS, "Clients")
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.10.2013, 21:34
Помогаю со студенческими работами здесь

Ошибка при добавление записей в БД
Здравствуйте, возникла проблема с добавлением записей в БД. В DataGrid выводит id 0, а все остальные данные Falsh. При попытки добавление...

Добавление записей в таблицу Access
Ребята! Привет! Такой вопрос: есть БД в ней таблица &quot;Овощи&quot;, надо через VS2010 добавить в столбец &quot;Названия&quot; пробывал вот так, но...

Добавление, изменение записей из DataGrivView в Excel
Есть база Excel. Вывожу ее в DataGridView Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim...

Работа с Access: добавление, редактирование, фильтрация, удаление записей, вывод на форму
В лицее начали изучать новую тему по ИТ - бД, и тут же получили по программированию огромное задание, в котором надо подключить бд и т.д....

Как сделать, чтобы в форме при добавление новых записей эти записи добавлялись в базу данных
Как сделать что бы в форме при добавление новых записей эти записи добавлялись в базу данных


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru