ark писал(а):А что мешает загрузить SELECT UNION ALL с нужным WHERE в таблицу сразу через DataAdapter?
выборка происходит из 100 схем, в каждой схеме есть идентичная таблица, но разные данные, с результатом такого select union all и нужно работать.
я бы хотела загрузить это в dataset и потом в 1 таблицу, как это можно сделать? а затем делать update, но как вернуть данные в разные схемы из одной таблицы datatable?
вот часть кода,который выполняет выборку в 1 datatable через datareader или вариант 2 в dataset
- Код: Выделить всё
For i = Users.Rows.Count - 1 To 0 Step -1
If nb_table = 1 Then
ma_requete = "SELECT * FROM " + Users.Rows(0).Item("usernom") + ".LBPA_CMD_CADASTRE"
Else : ma_requete = "SELECT * FROM " + Users.Rows(i).Item("usernom") + ".LBPA_CMD_CADASTRE ORDER BY CODE_MUN, NO_CMD"
With cmdAllTable
.Connection = ObjConn
.CommandType = CommandType.Text
.CommandText = ma_requete
End With
'-----------var1 rabotaet!-------------
ReaderAllSchemas = cmdAllTable.ExecuteReader
LBPA_CMD_CADASTRE_All.Load(ReaderAllSchemas)
ReaderAllSchemas.Close()
'-----------var1-------------
'-----------var2rabotaet!-------------
'cmdObj = New OleDbCommand(ma_requete, ObjConn)
' ObjAdapter = New OleDbDataAdapter(cmdObj)
'ObjAdapter.Fill(ObjDataSetCMD, "LBPA_CMD_CADASTRE_All")
' LBPA_CMD_CADASTRE_All = ObjDataSetCMD.Tables("LBPA_CMD_CADASTRE_All")
'-----------var2-------------
End If
compt = compt + 1
Next
oба варианта работают,но не знаю каким образом осуществить update, возможно мой подход не правильный?
во вотором случае пыталась написать update:
- Код: Выделить всё
Try
Try
ObjConn.Open()
Catch ex As Exception
MessageBox.Show(ex.Message, "Message d'alerte", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
ObjetCommandBuilder = New OleDbCommandBuilder(ObjAdapter)
ObjAdapter.Update(ObjDataSetAll, "LBPA_CMD_CADASTRE_All")
ObjDataSetAll.Clear()
ObjAdapterAll.Fill(ObjDataSetAll, "LBPA_CMD_CADASTRE_All")
LBPA_CMD_CADASTRE_All = ObjDataSetAll.Tables("LBPA_CMD_CADASTRE_All")
MsgBox("Update success!")
Catch ex As Exception
MessageBox.Show(ex.Message, "Message d'alerte", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Try
ObjConn.Close()
Catch ex As Exception
MessageBox.Show(ex.Message, "Message d'alerte", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
но получаю ошибку, такой таблицы не уществует, да физически она не существует, ведь она результат выборки из 100 схем,из 100 идентичных таблиц. вот я и в тупике, нужно делать построчное считывание и возврат в схемы?