Avatar billede chris535 Nybegynder
01. februar 2008 - 13:45 Der er 8 kommentarer

Import af data til sql server fra C#

Hej.

Jeg har brug for, gennem C#, at importere noget data til en MSSQL server. Er der nogen der kan hjælpe med det?

På forhånd tak

Chris
Avatar billede arne_v Ekspert
01. februar 2008 - 15:16 #1
Laes data fra fil og indsaet i database med INSERT !?!?

Eller sagt paa en anden maade: hvad er du koert fast i ?
Avatar billede chris535 Nybegynder
01. februar 2008 - 15:24 #2
Det var måske en lidt kort forklaring...
Problemet er, de filer jeg skal have importeret, kan være forskelligt sat op. Så jeg håbedelidt på at microsoft havde udviklet et api til c# der var lidt smart til opgave. Nogle af filerne kan også være meget store, jeg har en på ca 800 mb med tekst, og det må gerne gå bare lidt hurtigt.

Jeg stødte på SSIS, men jeg kan ikke helt finde ud af om det kan integreres med C#???
Avatar billede Syska Mester
01. februar 2008 - 18:28 #3
1. Hvorfor skal det være gennemt C# ?
2. I Sql Management Studio, er der ( tror den hedder DTS ) som kan tage forskellige filer ... og så er det jo  bare at sætte det op ... virker godt.

// ouT
Avatar billede arne_v Ekspert
02. februar 2008 - 04:25 #4
Der er en SqlBulkCopy klasse i System.Data.SqlClient, men jeg vil nu tro at ganske
almindelige INSERT kunne laves hurtige nok.
Avatar billede chris535 Nybegynder
04. februar 2008 - 08:51 #5
Det skal være gennem C# fordi det er til et projekt i skolen.

Arne --> Ved du mere om SqlBulkCopy, det skal nemlig virke ved, at man henter en fil ind og der ud fra skal applikationen selv oprette nye tabeller, og importere indholdet af filen. Problemet er bare, at de filer der skal importeres ikke nødvendigvis har helt ens opsætning, så jeg kunne forestille mig at det er et stort arbejde hvis jeg selv skal kode det fra bunden, så det bliver fleksibelt. Hvis det nu var, at microsoft havde lavet en component der minder om den fra MSSQL Server import kunne det være herligt.
Avatar billede powerpunk Nybegynder
05. februar 2008 - 15:19 #6
"så jeg kunne forestille mig at det er et stort arbejde hvis jeg selv skal kode det fra bunden, så det bliver fleksibelt."

Mon ikke det er det der er meningen, hvis det er et skoleprojekt? ;-)

SqlBulkCopy kan så vidt jeg ved kun bruges, hvis du allerede har tabellen i databasen, og filen kun indeholder kommaseparerede data der matcher tabellens struktur.

Men der må da være en eller anden sammenhæng i de filer, så du kan læse tabel information, oprette tabeller, læse og indsætte data...
Ellers er Integration Services vel heller ikke meget værd...
Avatar billede chris535 Nybegynder
05. februar 2008 - 20:01 #7
Jeg har fundet ud af at få problemet løst ved brug af ssis/.dtsx filer og køre dem gennem c#. Det er også noget hurtigere end sqlbulk. Jeg ved ikke lige hvem der skal ha point, smid et svar hvis i mener i har fortjent det...

Takker
Avatar billede powerpunk Nybegynder
07. februar 2008 - 10:56 #8
...det mener jeg ikke at jeg gør... :-)
Men hvis du kunne beskrive løsningen lidt nærmere, evt. hvilke klasser og assemblies du benytter til at håndtere SSIS fra C# kunne det være vældig informativt - og så kan du jo selv indkassere point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester