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.
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
27. februar 2007 - 16:30
#1
hvad er fejlen ?
27. februar 2007 - 16:31
#2
husker du at kalde efter du har brugt readeren i første omgang ? connection.Close();
27. februar 2007 - 16:31
#3
sikker på kolonnenavnene passer?
27. februar 2007 - 16:32
#4
Der er vel en fejl i dine felt-datatyper, eller et felt der ikke eksisterer...
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"
27. februar 2007 - 16:39
#6
user_name skal være varchar(255)
27. februar 2007 - 16:39
#7
varchar kan indeholde op til 8000 tegn
27. februar 2007 - 16:39
#8
ok hvorfor kan man ikke bruge text ?
27. februar 2007 - 16:40
#9
text bruger man kun meget sjældent til at gemme større tekst mængder.
27. februar 2007 - 16:40
#10
hvad gør man så hvis man har en text på over 8000 tegn ?
27. februar 2007 - 16:40
#11
Det er fordi der nogle begrænsninger, som blandt andet den du er stødt ind i.
27. februar 2007 - 16:40
#12
text burde også være ok.
27. februar 2007 - 16:41
#13
Så bruger man text eller deler teksten op på flere varchar felter.
27. februar 2007 - 16:41
#14
hvordan henter man så test som er gemt som "Text"
27. februar 2007 - 16:41
#15
Du kan ikke bruge = på et text felt. Du skal bruge Like og den er mere usikker.
27. februar 2007 - 16:42
#16
SELECT * FROM users where user_name LIKE 'ole'
27. februar 2007 - 16:42
#17
ok
27. februar 2007 - 16:42
#18
med varchar felter kan du bruge =.
27. februar 2007 - 16:43
#19
tak skal i have smid nogle svar !!
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'";
27. februar 2007 - 16:44
#21
svar :)
27. februar 2007 - 16:44
#22
pas
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)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.