Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/32: Рейтинг темы: голосов - 32, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 16.10.2010
Сообщений: 78

Вставить строки в таблицу из файла Excel

14.08.2011, 01:31. Показов 6966. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста ,как лучше осуществить задумку.
Есть файл excel' евый, нужно вытащить из него данные а поместить в готовую таблицу в базе SQL.
Если через Dataset, OledbAdapter, то как я понял, пока в датасете не произойдут изменения, в таблицу, через адаптер ничего не закинется (командами Update) А у меня получается готовый датасет и мне его как-то надо закинуть в базу.. Вот только как?
Можно выложить примерчик? Ну или направить в нужное русло.

Добавлено через 10 минут
P.S. Столбцы в Ехеле соответствуют полям в таблице базы.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.08.2011, 01:31
Ответы с готовыми решениями:

Скопировать предыдущие строки перед определенной строкой из текстового файла и вставить их в столбец Excel
Доброго времени суток! У меня есть текстовый файл, вида ... Фильм1 <http://ekinobilet.fond-kino.ru/films/detail> Фильм2 ...

Вставить excel таблицу
Здравствуйте подскажите пожалуйста, как вставить таблицу excel в joomla без потерь формул?. или компонент на которм можно создать...

Слив 3-х MS Excel таблиц в одну MS Access таблицу с добавлением столбцас именем файла для каждой отдельно взятой строки
Добрый день, я немного профан в MS Access. Так что не судите строго, есть три файла MS Excel которые нужно слить в одну таблицу MS Access,...

25
0 / 0 / 0
Регистрация: 16.10.2010
Сообщений: 78
15.08.2011, 21:34  [ТС]
Студворк — интернет-сервис помощи студентам
сорри ,не увидел.
Прописал dbadapter.UpdateCommand = builder.GetUpdateCommand
Теперь ругается: Динамическое создание SQL для UpdateCommand не поддерживается для SelectCommand, не возвращающей никаких сведений о столбце ключей.
Что-то недопонял.. где прописать сведения о ключах?
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
15.08.2011, 21:41
Там в таблице надо задать ключ, по-моему это в режиме визуального редактирования - в той же вижуал студии можно открыть базу данных и там назначить
0
0 / 0 / 0
Регистрация: 16.10.2010
Сообщений: 78
15.08.2011, 21:51  [ТС]
Увы.. Все так же не обновляется. Т.е. ошибка не вылазит, датагрид заполняется, но в таблице базы- пусто.
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
16.08.2011, 16:39
yur1221, вообщем там лучше сделать не через адаптер и update, а через запрос, правда тут лучше через Insert типа такого
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim sqlConnectionString As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=путь_к_файлу_бд\Pension.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
        Dim connection As SqlConnection = New SqlConnection(sqlConnectionString)
        Dim selection As String = "SELECT * FROM PensionReform"
Try
            connection.Open()
 
            For Each r As DataRow In ds.Tables(0).Rows
                command.CommandText = "INSERT INTO PensionReform (Год) VALUES (" & r(0).ToString() & ")"
                command.ExecuteNonQuery()
            Next
            connection.Close()
 
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
ds - заполненая из экзеля датасет, только придется писать большую строку запроса, если в базе много столбцов

Добавлено через 15 часов 49 минут
Короче, предыдущий мой пост, хотя и работает, но все это бред сивой кобылы.

Более оптимально это делается так
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
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
 
        'Параметры для создания соединения с Excel
        Dim excelConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Exp\Пенсионная реформа.xls;Extended properties = Excel 8.0"
        Dim excelConnection As OleDbConnection = New OleDbConnection(excelConnectionString)
        'Выборка производится из первого листа (Лист1)
        Dim selection As String = "SELECT * FROM [Лист1$]"
        Dim excelCommand As New OleDbCommand(selection, excelConnection)
        Dim exReader As OleDbDataReader
 
        'Параметры для создания соединения с базой SQL Server
        Dim sqlConnectionString As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\путь к базе данных\Pension.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
        Dim connection As SqlConnection = New SqlConnection(sqlConnectionString)
 
        Dim sqlCommandText As String = "SELECT * FROM PensionReform"
        Dim sqlCommand As New SqlCommand(sqlCommandText, connection)
 
        Try
            excelConnection.Open()
            connection.Open()
 
            exReader = excelCommand.ExecuteReader()
 
            While exReader.Read()
                sqlCommand.CommandText = "INSERT INTO PensionReform ([Год],[Пенсионный счет],[Пенсионный счет в цифрах 1-го года], [Инфляция],[Реальный доход в цифрах 1-го года] ) VALUES (" _
                    & exReader.GetValue(0).ToString() & ",'" & exReader.GetValue(1).ToString() & "','" & exReader.GetValue(2).ToString() & "','" & Convert.ToSingle(exReader.GetValue(3)) * 100 & "%','" & exReader.GetValue(4).ToString() & "')"
                sqlCommand.ExecuteNonQuery()
            End While
 
            excelConnection.Close()
            connection.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        Finally
            If excelConnection.State = ConnectionState.Open Then excelConnection.Close()
            If connection.State = ConnectionState.Open Then connection.Close()
        End Try
 
    End Sub
Таким образом я перевел все содержимое xls-файла в базу sql servera. И не надо никаких DataGridView (ну если только для наглядности) и DataSetов
1
0 / 0 / 0
Регистрация: 16.10.2010
Сообщений: 78
17.08.2011, 00:31  [ТС]
Прикольно. Так получилось. Честно говоря, была такая задумка.. Но все равно, почему же с датасета не заполняется? Я было попробовал через Openrowset ,но там получается что надо либо както извращатся и в запросе прописывать сетевой путьк файлу, либо копировать файл ехеля на сервак с SQL, что не хотелось бы.

P.S. Спасибо большое, за уделенное внимание.
 Комментарий модератора 
Если какой-либо пост на форуме показался вам полезным, нажмите кнопку "Спасибо" внизу самого поста.(Правила п.4.5)
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
17.08.2011, 08:20
Цитата Сообщение от yur1221 Посмотреть сообщение
Но все равно, почему же с датасета не заполняется?
возможно я ошибаюсь, но, видимо, бд не хочет работать и не работает с датасетами, которые заполнены не с этой бд, а с чужой.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.08.2011, 08:20

Вставить строку в таблицу excel
Здравствуйте. Не могу понять как вставить новую строку в таблицу excel. Есть таблица 2х2, хочу вставить пустую строку между ними, чтобы...

Возможно ли вставить таблицу excel в програму ?
Можно в програму вставить таблицу, лутше лист с excel ?

Вставить данные из Excel в таблицу world
здравствуйте! помогите пожалуйста с кодом. надо из ексель выгрузить данные через макрос в макет ворда. Dim iPath iPath =...

Можно в форму вставить таблицу excel
Добрый день. Можно в форму вставить таблицу excel для дальнейшей работы с ячейками именно в форме.

Вставить excel таблицу на страницу сайта
Добрый день. Возникла нужда вставлять на страницу сайта простую таблицу Excel. Нет ли у кого скрипта, который принимает путь excel таблицы...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. https:/ / youtu. be/ VpfFZSUDGnQ. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru