Gå til innhold

Merkelig problem etter bytte av webserver


Anbefalte innlegg

Skrevet (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.

 

 

:hmm:

Endret av alftore
Videoannonse
Annonse
Skrevet

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.

Skrevet

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

}

Skrevet

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.

Skrevet
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... :p hehe... Jeg er bare litt sær...

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...