De dag doorbrengen met coderen...(en .NET 1.0.3705.352 bug!) (Nederlands (Dutch))

De dag doorbrengen met coderen...(en .NET 1.0.3705.352 bug!)

Sunday, 29 February 2004

//

2 minute read

Ik ben aan het werk... ik dacht dat ik een heel rare insect zou noemen die ik gisteren tegenkwam. werk - wat me ongeveer anderhalve dag verbaasde...

Ik had een aanvraag geschreven (de Portal die ik eerder heb genoemd - De Onderwijsgemeenschap), waarbij gebruik wordt gemaakt van de Gegevens Access Application Blockom de DAL - die ik ten zeerste aanbevelen. Hoe dan ook, Dit is altijd foutloos geweest op elk platform waar ik het op heb geprobeerd.

    string user = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
    string exceptionStr=exception.ToString() + exception.StackTrace;
    SqlParameter[] sqlParams = new SqlParameter[4]; SqlParameter
    prmUser = new SqlParameter("@user",SqlDbType.VarChar,500);
    prmUser.Value = user;
    SqlParameter prmMessage = new SqlParameter("@exceptionMessage",
    SqlDbType.VarChar, 2000);
    prmMessage.Value = exception.Message;
    SqlParameter prmExStr = new SqlParameter("@exception",SqlDbType.Text);
    prmExStr.Value = exceptionStr;
    SqlParameter prmPortalId = new SqlParameter("@portalId",SqlDbType.SmallInt);
    prmPortalId.Value = 0; sqlParams[0] = prmUser;
    sqlParams[1] = prmMessage;
    sqlParams[2] = prmExStr; 
    sqlParams[3] = prmPortalId;
    /*SqlHelperParameterCache.GetSpParameterSet(_connectionString,"pr_Admin_InsertError");  sqlParams[0].Value
    = user;  sqlParams[1].Value = exception.Message;  sqlParams[2].Value
    = exceptionStr;  //sqlParams[2].Value = "Test String";  sqlParams[3].Value
    = ((PortalSettings)HttpContext.Current.Items["PortalSettings"]).PortalId;*/ 
    SqlHelper.ExecuteNonQuery(_connectionString,CommandType.StoredProcedure,"pr_Admin_InsertError",sqlParams);

Ik gebruik een methode het biedt genaamd SqlHelperParameterCache.GetSpParameters (commentaar gemaakt out in de code hierboven) - dit in principe gewoon bevolkt een reeks van SqlParameters met de parameters terug van de DB - bespaart een beetje codering en maakt de app gemakkelijker updaten naarmate de SP's veranderen - leuk!

Hoe dan ook, dit heeft foutloos gewerkt, snel, efficiënt alles! Totdat dat is, ik Donderdag probeerde ik naar onze testomgeving te gaan - ik kreeg steeds verschillende fouten, Ernstige fout en algemene netwerkfout terug van SQL Server 2000 toen ik probeerde uit te voeren Nou, de versie van .NET op die machine was 1.0.3705.352

  • een versie die ik nooit had gezien en niet kan krijgen - maar ik nam aan, .NET 1.0 was allemaal mooi Veel hetzelfde, misschien een paar bugfixes, maar dat is het zo'n beetje!

Umm...fout, blijkt dat deze versie heeft een groot probleem als je probeert om de parameters te krijgen terug van een SP wanneer de SP een 'tekst' type veld verwacht - het krijgt het gewoon verkeerd op een of andere manier

  • en veroorzaakt deze verschrikkelijke, raadselachtige fout. Oplossing, expliciet verklaren van de veldtypen voor de parameters als uw SP een 'tekst' veld bevat (slechts één waarvoor ik het heb geprobeerd, kan invloed hebben op meer 'binaire' types).

Hoe dan ook, nu gerepareerd - maar ik raad je aan te upgraden naar 1.1 - die ook een fantastische ding dat ik ontdekte van sommige kerels blog op de ASP.NET weblogs eenvoudig maar bespaart een beetje typen, lijkt dat DropDownList (Ik verwacht RadioButtonList heeft het ook, maar niet geprobeerd!) dat is een SelectedValue eigenschap - hoe cool is dat - nou niet zo cool, maar het' beter dan het doen van de oude ddl.selectedItem.Value...bit korter...

Finding related posts...
logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.