alftore Skrevet 1. mars 2007 Del Skrevet 1. mars 2007 (endret) Hei, Det har oppstått noen merkelige problemer etter at jeg flyttet den til en ny webserver. Jeg får feilmeldinger om at kolonne x ikke eksisterer i rad y. Koden bak ser noe slik ut. Har forenklet den en del for å trekke ut de viktigste elementene. public class Customer : SqlDatabaseClass { private int _customerId; private string _customerName; public Customer(int customerId, string customerName) { _customerId = customerId; _customerName = customerName; } public int CustomerId { get { return _customerId; } } public string CustomerName { get { return _customerName;} } public static CustomerCollection GetCustomer(int customerId) { // Verify input if(customerId <= 0) throw new ArgumentException("customerId"); SqlCommand cmd = new SqlCommand("Kundedata_HentKunde"); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@kundeId", SqlDbType.Int).Value = customerId; return executeReader(cmd); } private static CustomerCollection executeReader(SqlCommand sqlCmd) { CustomerCollection col = new CustomerCollection(); using(SqlConnection con = createNewConnection()) { con.Open(); sqlCmd.Connection = con; SqlDataReader reader = sqlCmd.ExecuteReader(); while(reader.Read()) { // Her feiler applikasjonen i 1% av tilfellene // Jeg får beskjed om at kolonnen "KundeId" ikke eksisterer Customer c = new Customer( Convert.ToInt32(reader["KundeId"]), Convert.ToString(reader["KundeNavn"])); // Add customer to collection col.Add(c); } con.Close(); } return col; } } Det som er merkelig er at koden kjører helt fint 99% av tiden. Men av og til får jeg altså feilmelding om at kolonne "KundeId" ikke eksisterer. reader.Read() returner tydeligvis true men feiler når jeg prøver å hente ut dataene. Jeg kjører .NET 1.1 på IIS 6.0 og bruker MS SQL 2000. Endret 1. mars 2007 av alftore Lenke til kommentar
Semikolon Skrevet 1. mars 2007 Del Skrevet 1. mars 2007 sikker på at det ikkje er databaseserveren da? Lenke til kommentar
alftore Skrevet 4. mars 2007 Forfatter Del Skrevet 4. mars 2007 Vel det kan godt være sql serveren. Men jeg har ikke byttet sql server kun webserver. Jeg skulle likt å visst litt mer hvordan sql driverne til MS fungerer. Lurer også på om det kan være et skaleringsproblem. Får debugge litt mere når jeg har bedre tid. Lenke til kommentar
j000rn Skrevet 4. mars 2007 Del Skrevet 4. mars 2007 Kan du legge ut SQL koden/SP'en som blir kjørt? I tillegg lønner det seg å lukke selve SqlDataReader objektet, gjerne ved å bruke using... using(SqlDataReader reader = sqlCmd.ExecuteReader()) { ...etc } Lenke til kommentar
alftore Skrevet 5. mars 2007 Forfatter Del Skrevet 5. mars 2007 Sql setningen er så enkel som SELECT * FROM Kunde WHERE KundeId=@kundeId Jeg kan godt forsøke å legge inn en using på SqlDataReader og se om det hjelper. Lenke til kommentar
Manfred Skrevet 5. mars 2007 Del Skrevet 5. mars 2007 Kan du legge ut SQL koden/SP'en som blir kjørt? I tillegg lønner det seg å lukke selve SqlDataReader objektet, gjerne ved å bruke using... using(SqlDataReader reader = sqlCmd.ExecuteReader()) { ...etc } 8075485[/snapback] Jeg sverger fortsatt til Close og Dispose, men... hehe... Jeg er bare litt sær... Lenke til kommentar
j000rn Skrevet 5. mars 2007 Del Skrevet 5. mars 2007 Jeg er bare litt sær... 8084295[/snapback] Lenke til kommentar
Manfred Skrevet 5. mars 2007 Del Skrevet 5. mars 2007 Jeg er bare litt sær... 8084295[/snapback] 8084421[/snapback] Pass deg nå... Og kom deg på msn... Har ikke sett deg på lenge der.. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå