🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.comp.lang.csharp
Article #9933

Re: Odbc -> DataSet -> SqlClient

#9933
From: Przemek
Date: Thu, 10 Nov 2005 21:52
70 lines
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-mail
References: <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