powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataSet->Recordset?
16 сообщений из 16, страница 1 из 1
DataSet->Recordset?
    #39030618
Lexx_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Необходимо скинуть данные полученные из запроса в Excel, но проблема в том что запрос сложный и rs его "не понимает". Делаю запрос через SqlDataAdapter и заполняю DataSet. Все получается, только вот в CopyFromRecordset нужен ресордсет. Как мне заполнить или преобразовать DataSet в Recordset?Спасибо.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Dim DSData As New DataSet
Dim SQLConn As New SqlClient.SqlConnection(ConnectionString)
Dim SqlCommand1 As New SqlClient.SqlCommand(SQLData, SQLConn)
Dim DAData As New SqlClient.SqlDataAdapter
DAData.Fill(DSData)
?????
xlWs.Range("A7").CopyFromRecordset(rs)
...
Рейтинг: 0 / 0
DataSet->Recordset?
    #39030636
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexx_SQL, на счет "не понимает" вы, скорее всего, ошибаетесь... наверняка где-то налажали... по сути вопроса - нужно написать метод... екстеншен например... если идей совсем нема, что печально - гугл вам в руки https://www.google.ru/webhp?sourceid=chrome-instant&ion=1&espv=2&es_th=1&ie=UTF-8#newwindow=1&q=datatable to recordset c#
...
Рейтинг: 0 / 0
DataSet->Recordset?
    #39030662
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
экселю можно скормить только ADODB или DAO рекордсет

соответсвенно - или запрос делать через ADODB, или создать ADODB рекордсет и скопировать в него данные DataSet

(ADO.NET и ADODB - главное не перепутать)
...
Рейтинг: 0 / 0
DataSet->Recordset?
    #39030669
Lexx_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
объем данных большой. как скопировать быстро?
...
Рейтинг: 0 / 0
DataSet->Recordset?
    #39030674
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexx_SQLИзопропил,
объем данных большой. как скопировать быстро? XML ?
...
Рейтинг: 0 / 0
DataSet->Recordset?
    #39030676
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexx_SQLобъем данных большой. как скопировать быстро?Тогда лучше воспользоваться первым советом и запросить данные через ADODB
...
Рейтинг: 0 / 0
DataSet->Recordset?
    #39030681
Lexx_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
в программе создаются наборы данных из сложных запросов, например:
Код: sql
1.
2.
3.
4.
5.
6.
if object_id('tempdb..#t','U') is not null drop table #t
create table #t (dir nvarchar(255))
declare @dir nvarchar(255)='\\S1\Users\'
insert into #t exec xp_subdirs @dir
SELECT row_number() over(order by dir) as no, dir , @dir+dir path from #t
drop table #t


насколько я понял recordset его не понимает.
...
Рейтинг: 0 / 0
DataSet->Recordset?
    #39030684
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexx_SQLShocker.Pro,
в программе создаются наборы данных из сложных запросов, например:
Код: sql
1.
2.
3.
4.
5.
6.
if object_id('tempdb..#t','U') is not null drop table #t
create table #t (dir nvarchar(255))
declare @dir nvarchar(255)='\\S1\Users\'
insert into #t exec xp_subdirs @dir
SELECT row_number() over(order by dir) as no, dir , @dir+dir path from #t
drop table #t


насколько я понял recordset его не понимает.И текст ошибки наверняка какой-нибудь выдаёт?
...
Рейтинг: 0 / 0
DataSet->Recordset?
    #39030693
Lexx_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,
Запрос выполняется , но на проверке rs.eof ошибка

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Try
rs = conn.Execute(StrSQLSelect)
Catch ex As Exception
      MsgBox(ex.Message)
End Try

If rs.eof Then      --Ошибка - Операция не допускается, если объект закрыт.
    rs.close() : conn.close() : Exit Sub
Else
    StrSQLSelect = rs(0).value
End If
...
Рейтинг: 0 / 0
DataSet->Recordset?
    #39030701
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexx_SQL,
А куда делось открытие конекции?
...
Рейтинг: 0 / 0
DataSet->Recordset?
    #39030707
Lexx_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Axeleron,
это все есть..rs = conn.Execute(StrSQLSelect) выдал бы ошибку.
Код: sql
1.
conn.Open("Provider=SQLOLEDB;" + ConnectionString)
...
Рейтинг: 0 / 0
DataSet->Recordset?
    #39030712
Lexx_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexx_SQL,

Если вместо этого запроса вставить простенький запрос типа Select * from t , то все работает. Поэтому я думаю, что rs не заполняется только из-за запроса. В тоже время через SqlDataAdapter.Fill(Dataset) все работает.
...
Рейтинг: 0 / 0
DataSet->Recordset?
    #39030716
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexx_SQL, NextRecordset либо set nocount on во первых строках скрипта...
...
Рейтинг: 0 / 0
DataSet->Recordset?
    #39030718
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это пакет выполняется на TSQL?
Поставь первой строкой SET NOCOUNT ON
...
Рейтинг: 0 / 0
DataSet->Recordset?
    #39030739
Lexx_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

да.спасибо.заработало
...
Рейтинг: 0 / 0
DataSet->Recordset?
    #39030748
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexx_SQLShocker.Pro,

да.спасибо.заработалоbuser быстрее успел ))
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataSet->Recordset?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]