[c# | asp.net]Excel in Datagrid, vreemde waarde als output?

Pagina: 1
Acties:

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 15:11
Onderstaande code doet perfect wat ik (op dit moment) wil. Namelijk een Excel file inladen in een DataGrid.

C#:
1
2
3
4
5
6
7
8
9
10
11
DataSet dsXLS = new System.Data.DataSet();
string strConn =    "Provider=Microsoft.Jet.OLEDB.4.0;" +
        "Data Source=C:\\testadres.xls;" +
        "Extended Properties=Excel 8.0;";

string sqlQ = "select * from [Blad2$]";
OleDbDataAdapter myData = new OleDbDataAdapter(sqlQ, strConn);
myData.TableMappings.Add("Table", "xls");
myData.Fill(dsXLS);
DataGrid1.DataSource = dsXLS.Tables["xls"].DefaultView;
DataGrid1.DataBind();


Dit is bijvoorbeeld de output daarvan:
janjansenteststraat12aF5rotterdam
klaasde geerlaan van de test122 3 hoog2222Arnhem

Zoals je ziet heb ik een streep door F5 gezet. Dat is in het Excel sheet namelijk 1111.
Terwijl de 2222 in het record daar onder wel goed is.

Hoe kan dit en is er een oplossing voor?

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

mss even de formattering in het excelblad aanpassen (bv. naar tekst) (gokje)

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 15:11
Dan verklaart dat nog niet waarom de 2e rij wel goed is.

Had misschien moeten vertellen dat dit in een upload systeem komt. En ik heb, grof gezegd, geen controle over de input.

Zelfs het aantal velden krijg ik niet van te voren.

Ik moet dus eigenlijk 1 grote Dataset van een bepaald Excel file zien te krijgen.

[ Voor 11% gewijzigd door TeeDee op 22-09-2004 17:22 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 15:11
Ben nog even wezen klussen.
Zodra ik in de eerste rij velden een "header" zet, daaronder de adressen, dan werkt het wel, alleen dan worden alle numerieke waardes eruit gegooid.

Op een of andere manier zal alles on the fly omgezet moeten worden naar een string. Nu nog ff uitvogelen hoe of wat.

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

TeeDee schreef op 22 september 2004 @ 17:22:
Dan verklaart dat nog niet waarom de 2e rij wel goed is.
niet noodzakelijk. hoogstwaarschijjnlijk zal een aantal van de methodes in je script intern proberen het type van het excelveld proberen te achterhalen/raden, waarbij ongewenste conversies kunnen ontstaan die je data vervormen. je zou mss met een paar dummydata rijen kunnen werken die verzekeren dat de gegevenstypes juist herkend worden (maar dit wordt moeilijk als je niet op voorhand het aantal velden weet). vandaar m'n voorstel het excelblad te formatteren, dit geeft meer zekerheid bij eventuele conversie in de interne keuken van de aangeroepen methodes, maar dit blijft koffiedik kijken want m'n ervaring met seesharp==null.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 15:11
Het is inderdaad lastig om het e.e.a. te bepalen omdat ik niet weet wat de input zal zijn.

In asp3.0 had ik een soortgelijke functie (deze riep het Excel sheet ook aan als OleDb connectie).
Daar had ik bijvoorbeeld het volgende probleem:

janjansenteststraat121111LLrotterdam
klaasde geerlaan van de test122 3 hoog2222Arnhem

In het 2e record zie je dat het huisnummer weggevallen is. Dat komt door het eerste record. Deze word gezien als Numeric, terwijl eigenlijk alles een string zou moeten zijn.

Verder gaat de OleDb connectie ervan uit dat er "headers" in het Excel sheet staan. Hij gaat dus automatisch vanaf het 2e record lezen en ziet de 1e regel altijd als header.

Denk dat we de gebruiker maar moeten gaan opvoeden, en zeggen dat hij/zij het zo en zo moet doen.

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

toch nog een laatste opmerking:je kan in de extended properties instellen dat er geen header moet zijn, en ook hoeveel rijen gescand moeten worden om het datatype van de velden te bepalen: http://support.microsoft....aspx?scid=kb;EN-US;278973

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 15:11
Hee, thanks.
Zal die extended properties eens nalopen. Ziet er wel interessant uit.

Heart..pumps blood.Has nothing to do with emotion! Bored

Pagina: 1