Tjipp, TEORI: Inget svar. Om din teori stämmer så kommer inte DataSet att funka heller. Eftersom jag använder FOR XML i min SELECT-sats så får jag tillbaka resultatet i en enda lång sträng i en kolumn. Så jag har inte provat på fler fält än det. Ok nu har jag löst det. Lite löjligt att jag inte provade det innan.Sqldatareader klipper av sträng
Jag hämtar data från Sql server som Xml via en select lalalalala for xml auto.
I Query Analyzer får jag hela sökresultatet, men när jag hämtar datan i asp.net med en reader så klipper den av strängen efter drygt 2000 tecken.
Jag har provat att hämta datan med reader.getstring(0), reader.getvalue(0) och reader(0) men jag får ändå inte ut hela strängen.
Någon som varit med om detta och har en lösning?
/RickardSv: Sqldatareader klipper av sträng
Det första jag tänker på är det faktum att du använder just en datareader.
En datareader är designad för att vara SNABB och bjuder därför inte så mycket dynamik, den kan ju som bekant tex bara läsa i en riktning.
Min teori är helt enkelt att utrymme sparas genom att strängar inte kan vara längre än just 2000 tecken, vilket torde räcka i de flesta fall. Jag har sökt i dokumentationen om det men kan tyvärr inte hitta något som tyder på att jag har rätt men som de säger i amerikanska deckare: 'I've got a gut feeling'.
Om min teori stämmer så borde ett dataset funka istället.
Testa också att använda metoden GetSqlString på readern.Sv:Sqldatareader klipper av sträng
Det finns endast ett sätt att läsa resultatet av en query och det är med en DataReader. Det innebär att om du ber en DataAdapter att fylla ett DataSet, så använder den också en reader för att hämta data. Så readern kommer du inte ifrån.
Däremot tycker jag att det låter väldigt konstigt att den klipper efter 2000 tecken. Gäller det alla text fält? Eller bara ett?Sv: Sqldatareader klipper av sträng
Totala längden på strängen när jag hämtar den från Query Analyzer är ca 3400 tecken.
Nu har jag provat med getsqlstring men det ger samma resultat som de övriga.
/RickardSv:Sqldatareader klipper av sträng
Jag kollade bara om det fanns någon i readern och hämtade det isf, jag gjorde ingen do while reader.read
Nu fick jag iallafall ut hela resultatet.
Tack för er tid och teorier!
/Rickard