Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Prebacivanje podataka iz jedne baze u drugu SQL Server 2005 i C#.NET

[es] :: .NET :: .NET Desktop razvoj :: Prebacivanje podataka iz jedne baze u drugu SQL Server 2005 i C#.NET

[ Pregleda: 3903 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ChildInTime
BiH

Član broj: 52180
Poruke: 50
*.rb.a.2-1.247.bih.net.ba.



Profil

icon Prebacivanje podataka iz jedne baze u drugu SQL Server 2005 i C#.NET14.08.2007. u 12:35 - pre 203 meseci
Pozdrav svima,


Imam sljedeci problemčić : Imam dvije baze (u SQL Server 2005) i trebam da preko coda u samoj aplikaciji koju pravim (C# win aplikacija..recimo klikom na jedno dugme) kopiram podatke iz jedne baze (određene kolone) u drugu bazu,znaci koja ima identičnu strukturu tabela (tih tabela koje trebam da prebacim).

Uglavnom, to sam izveo preko DataSet-ova (data table-ova i adaptera) i sve radi super. Samo najveći je problem vrijeme. Uredu je kada ima manje zapisa (10-ak hiljada redova u tabeli) al kada ima vise ( 1 milion) nastaje problem vremena.

Fazon je u tome sto je moj kolega negdje na internetu naletio na caku kako to izvesti pomocu neke ugrađene kontrole u .NET-u (3-4 linije koda) koja omogućava da to mnogo brze ide, al sad to ne mozemo naci.

Recimo, pomocu DataSet-ova mi treba da 10.000 redova iz jedne tabele (3-4 kolone) iz jedne baze prebacim u drugu tabelu u drugoj bazi oko 50-ak sekundi, a na taj drugi način je trebalo oko 7-8 sekundi..

Da li mozda neko zna kako to uraditi ili gdje bi mogao to naci..ili ako je neko mozda to vec koristio..


U svakom slucaju hvala

Pozdrav



Maybe one day I'll be na honest man
Up till now I'm doing the best I can...
 
Odgovor na temu

sivan347
.NET Programer
Beograd

Član broj: 84406
Poruke: 101
*.fiberop.matgnet.com.



Profil

icon Re: Prebacivanje podataka iz jedne baze u drugu SQL Server 2005 i C#.NET14.08.2007. u 12:57 - pre 203 meseci
Ako su baze na istom serveru ne moras da povlacis podake u dataset pa da ih spustas u drugu bazu. Dovoljno je da odradis insert upit koji ce prebaciti podatke tipa

insert into baza2.tabela
select * from baza1.tabela
 
Odgovor na temu

_prompt

Član broj: 64725
Poruke: 30
*.dynamic.sbb.co.yu.



Profil

icon Re: Prebacivanje podataka iz jedne baze u drugu SQL Server 2005 i C#.NET14.08.2007. u 14:16 - pre 203 meseci
Mozes da pokusas sa SqlBulkCopy, nisam siguran koliko je brza.
Imas primer na http://www.codeproject.com/cs/database/SqlBulkCopy.asp .

Pozdrav
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
*.adsl.net.t-com.hr.



+19 Profil

icon Re: Prebacivanje podataka iz jedne baze u drugu SQL Server 2005 i C#.NET14.08.2007. u 15:20 - pre 203 meseci
Citat:
ChildInTime: Pozdrav svima,


Imam sljedeci problemčić : Imam dvije baze (u SQL Server 2005) i trebam da preko coda u samoj aplikaciji koju pravim (C# win aplikacija..recimo klikom na jedno dugme) kopiram podatke iz jedne baze (određene kolone) u drugu bazu,znaci koja ima identičnu strukturu tabela (tih tabela koje trebam da prebacim).

Uglavnom, to sam izveo preko DataSet-ova (data table-ova i adaptera) i sve radi super. Samo najveći je problem vrijeme. Uredu je kada ima manje zapisa (10-ak hiljada redova u tabeli) al kada ima vise ( 1 milion) nastaje problem vremena.

Fazon je u tome sto je moj kolega negdje na internetu naletio na caku kako to izvesti pomocu neke ugrađene kontrole u .NET-u (3-4 linije koda) koja omogućava da to mnogo brze ide, al sad to ne mozemo naci.

Recimo, pomocu DataSet-ova mi treba da 10.000 redova iz jedne tabele (3-4 kolone) iz jedne baze prebacim u drugu tabelu u drugoj bazi oko 50-ak sekundi, a na taj drugi način je trebalo oko 7-8 sekundi..

Da li mozda neko zna kako to uraditi ili gdje bi mogao to naci..ili ako je neko mozda to vec koristio..


U svakom slucaju hvala

Pozdrav


ucitas sa sql upitom u datatable, ali ne prikazujes u datagridview-u.
i zatim ispod stavis kod za ubacivanje iz datatable.


za 1 milion redova, citanje treba oko 20-30 s, nisam siguran, ali za ubacivanje treba malo duze.ako ubacujes i rucno u bazu iz txt datoteke, opet traje.
na ovaj nacin za 10000 redova, vrijeme je oko 1 s.
za citanje i prikazivanje oko 10000 redova u datagridview-u niti sekunda.
 
Odgovor na temu

ChildInTime
BiH

Član broj: 52180
Poruke: 50
*.PPPoE-477.sa.bih.net.ba.



Profil

icon Re: Prebacivanje podataka iz jedne baze u drugu SQL Server 2005 i C#.NET14.08.2007. u 18:34 - pre 203 meseci
Citat:
_prompt: Mozes da pokusas sa SqlBulkCopy, nisam siguran koliko je brza.
Imas primer na http://www.codeproject.com/cs/database/SqlBulkCopy.asp .

Pozdrav




Mislim da bi moglo biti to to, svaka cast:) Hvala svima na brzim odgovorima i pomoci. Probacu da uradim na vise nacina i testiram, pa kad zavrsim postavicu rezultate..

Pozdrav svima!
Maybe one day I'll be na honest man
Up till now I'm doing the best I can...
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
*.adsl.net.t-com.hr.



+19 Profil

icon Re: Prebacivanje podataka iz jedne baze u drugu SQL Server 2005 i C#.NET14.08.2007. u 20:24 - pre 203 meseci
Citat:
ChildInTime: Mislim da bi moglo biti to to, svaka cast:) Hvala svima na brzim odgovorima i pomoci. Probacu da uradim na vise nacina i testiram, pa kad zavrsim postavicu rezultate..

Pozdrav svima!



Dim c As String = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source=c:\baza.mdb;Jet OLEDB:Database Password= "

Dim co As New OleDb.OleDbConnection(s)
Dim a As New OleDb.OleDbDataAdapter("select * from tablica", c)
Dim d As New DataTable
co.Open()
a.Fill(d)
co.Close()


Dim co1 As OleDb.OleDbConnection
Dim c1 As String
Dim com As OleDb.OleDbCommand


for i as integer=0 to dt.rows.count-1

co1 = New OleDb.OleDbConnection("Provider=Microsoft.jet.Oledb.4.0;Data Source =c:\baza.mdb;Jet OLEDB:Database Password= ")
co1.Open()
c1 = "INSERT INTO tablica(kolona1,kolona2)" & "VALUES('" & dt.Rows(i).Item("kolona1").ToString & "','" & dt.Rows(i).Item("kolona2").ToString & "')"

com = New OleDb.OleDbCommand(c1, co1)
com2.ExecuteNonQuery()

co1.Close()

next

ovo je za access.
samo mijenjas parametre za sql server.
ovo se sve događa klik na gumb.
ovo radi 100%.
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: Prebacivanje podataka iz jedne baze u drugu SQL Server 2005 i C#.NET

[ Pregleda: 3903 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.