Article View: alt.pl.comp.lang.csharp
Article #9933Re: Odbc -> DataSet -> SqlClient
From: Przemek
Date: Thu, 10 Nov 2005 21:52
Date: Thu, 10 Nov 2005 21:52
70 lines
3330 bytes
3330 bytes
Grzesiek G. napisał(a):
> Przemek napisał(a):
>
>> Mam pytanie, jak poniższego DataSet'a utworzonego OdbcDataAdapterem (z
>> pliku tekstowego)
>>
>> OdbcConnection fileConn = new OdbcConnection(@"[...]");
>> OdbcDataAdapter fileDA1 = new OdbcDataAdapter("SELECT [...]FROM
>> `t1.txt`", fileConn);
>> OdbcDataAdapter fileDA2 = new OdbcDataAdapter("SELECT [...]FROM
>> `t1.txt`", fileConn);
>> fileConn.Open();
>> DataSet fileDS = new DataSet();
>> fileDA1.Fill(fileDS, "Tabela_1");
>> fileDA2.Fill(fileDS, "Tabela_2");
>> fileConn.Close();
>>
>> wyeksportować do MSSQL Servera?
>>
>> Mam nadzieję że się nikt nie oburzy, że pewnie zadaje fundamentalne
>> pytania ;).
>
> Już domyślam się z czym możesz mieć problem :-) (w kontekście
> poprzedniego maila).
> DataRow ma właściwość RowState, która mówi m.in., czy wiersz jest nowy,
> niezmieniony, zmieniony czy skasowany. Na podstawie tej informacji
> DataAdapter decyduje, czy na wierszu wykona insert, update, delete czy
> nic. Zatem przed wywołaniem eksportem (czyli da.Update) musisz ustawić
> stan na Added albo przez przepisanie wierszy do nowego dataseta, albo
> nie wiem jak :-(
>
> Albo możesz pozbyć się DataAdaptera aktualizującego bazę i samemu
> wstawiać danena zasadzie:
>
> connection.Open();
> try
> {
> foreach(TwójDataRow row in Dataset.Tabela.Rows)
> {
> //ustawiasz Parameters SqlCommands
> command.ExecuteNonQuery();
> }
> }
> finally
> {
> connection.Close();
> }
>
> Pozdrawiam
>
Dzięki za pomoc, ale niestety nie udało mi się tego do końca rozwiązać.
Właściwość RowState jest tylko do odczytu, a zeby ja zmienic w klonie
dataseta z unchanged na added to jedyny sposob jaki mi sie udalo znalezc
to najpierw zapis do xml z pierwszego dataseta i odczyt z xml drugim.
Nie do konca mi o to chodzilo. Moze ktos ma inny pomysl jak to
zrealizowac? Nie chce rezygnowac z ODBC, poniewaz ilosc kolumn w pliku
csv moze sie zmieniac, natomiast nazwy kolumn sa stale. To znacznie
ulatwia mi sprawe. Moze ktos ma pomysl jak to zrealizowac. Zadanie jest
nastepujace:
Pobierz kilka kolumn danych z pliku csv na komputerze lokalnym i umiesc
je w odpowiednim miejscu na MSSQL Serverze.(DataSet z dwóch tabel i
jedna relacja) Teoretycznie proste ale sie jakos zawiesilem w tym miejscu.
Dzieki za pomoc
Pozdrawiam PS
Technical Details
Message-ID:
<dl0ffu$qah$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<dkvgo9$1nn$1@inews.gazeta.pl> <dkvkbt$aqa$1@nemesis.news.tpi.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: Przemek <psmolich@gazeta.pl> Newsgroups: alt.pl.comp.lang.csharp Subject: Re: Odbc -> DataSet -> SqlClient Date: Thu, 10 Nov 2005 22:52:57 +0100 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 70 Message-ID: <dl0ffu$qah$1@inews.gazeta.pl> References: <dkvgo9$1nn$1@inews.gazeta.pl> <dkvkbt$aqa$1@nemesis.news.tpi.pl> NNTP-Posting-Host: xdsl-291.wroclaw.dialog.net.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1131659582 26961 81.168.129.35 (10 Nov 2005 21:53:02 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Thu, 10 Nov 2005 21:53:02 +0000 (UTC) In-Reply-To: <dkvkbt$aqa$1@nemesis.news.tpi.pl> X-Accept-Language: pl, en-us, en X-User: psmolich User-Agent: Mozilla Thunderbird 1.0.7 (Windows/20050923) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit