Avatar billede wedia Nybegynder
27. februar 2007 - 16:29 Der er 22 kommentarer og
1 løsning

problem med sqldatareader

Hej eksperter,

jeg har denne kode :

SqlConnection connection = new SqlConnection(ConfigurationSettings.AppSettings["DatabaseString"]);
        SqlCommand command = new SqlCommand();
        connection.Open();
        command.Connection = connection;
        command.CommandText = "SELECT * FROM users where user_id ='1'";
        SqlDataReader reader = command.ExecuteReader();

og det virker uden problemmer

men hvis jeg ændre det til det her :

SqlConnection connection = new SqlConnection(ConfigurationSettings.AppSettings["DatabaseString"]);
        SqlCommand command = new SqlCommand();
        connection.Open();
        command.Connection = connection;
        command.CommandText = "SELECT * FROM users where user_name = 'ole'";
        SqlDataReader reader = command.ExecuteReader();

så laver den fejl i SqlDataReader reader = command.ExecuteReader(); hvorfor ?

og det er en ole i db det er den samme post den henter som i første eks.
Avatar billede dr_chaos Nybegynder
27. februar 2007 - 16:30 #1
hvad er fejlen ?
Avatar billede dr_chaos Nybegynder
27. februar 2007 - 16:31 #2
husker du at kalde
efter du har brugt readeren i første omgang ?
connection.Close();
Avatar billede kalp Novice
27. februar 2007 - 16:31 #3
sikker på kolonnenavnene passer?
Avatar billede softspot Forsker
27. februar 2007 - 16:32 #4
Der er vel en fejl i dine felt-datatyper, eller et felt der ikke eksisterer...
Avatar billede wedia Nybegynder
27. februar 2007 - 16:38 #5
ja kolonnenavnene passer og Conn'en bliver lukket.

The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator.

kolonnen user_name i db er sat til "Text" og user_id er sat til "int"
Avatar billede dr_chaos Nybegynder
27. februar 2007 - 16:39 #6
user_name skal være varchar(255)
Avatar billede dr_chaos Nybegynder
27. februar 2007 - 16:39 #7
varchar kan indeholde op til 8000 tegn
Avatar billede wedia Nybegynder
27. februar 2007 - 16:39 #8
ok hvorfor kan man ikke bruge text ?
Avatar billede dr_chaos Nybegynder
27. februar 2007 - 16:40 #9
text bruger man kun meget sjældent til at gemme større tekst mængder.
Avatar billede wedia Nybegynder
27. februar 2007 - 16:40 #10
hvad gør man så hvis man har en text på over 8000 tegn ?
Avatar billede dr_chaos Nybegynder
27. februar 2007 - 16:40 #11
Det er fordi der nogle begrænsninger, som blandt andet den du er stødt ind i.
Avatar billede softspot Forsker
27. februar 2007 - 16:40 #12
text burde også være ok.
Avatar billede dr_chaos Nybegynder
27. februar 2007 - 16:41 #13
Så bruger man text eller deler teksten op på flere varchar felter.
Avatar billede wedia Nybegynder
27. februar 2007 - 16:41 #14
hvordan henter man så test som er gemt som "Text"
Avatar billede dr_chaos Nybegynder
27. februar 2007 - 16:41 #15
Du kan ikke bruge = på et text felt.
Du skal bruge Like og den er mere usikker.
Avatar billede dr_chaos Nybegynder
27. februar 2007 - 16:42 #16
SELECT * FROM users where user_name LIKE 'ole'
Avatar billede wedia Nybegynder
27. februar 2007 - 16:42 #17
ok
Avatar billede dr_chaos Nybegynder
27. februar 2007 - 16:42 #18
med varchar felter kan du bruge =.
Avatar billede wedia Nybegynder
27. februar 2007 - 16:43 #19
tak skal i have smid nogle svar !!
Avatar billede kalp Novice
27. februar 2007 - 16:43 #20
ved ikke om det kan lade sig gøre:)

command.CommandText = "SELECT * FROM users where CAST(user_name as nvarchar(255)) = 'ole'";
Avatar billede dr_chaos Nybegynder
27. februar 2007 - 16:44 #21
svar :)
Avatar billede softspot Forsker
27. februar 2007 - 16:44 #22
pas
Avatar billede kalp Novice
27. februar 2007 - 16:53 #23
man kan sikkert godt lave det der Convert eller type Cast trick, men sikkert mig som laver det forkert;o)

anyways - det giver ikke mening at gemme i "Text" hvis blot det er så lidt tekst der skal gemmes;o)
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