De dag besteed aan coderen...( en .NET 1.0.3705.352 bugM SK3
Ik dacht dat ik een heel vreemde fout had genoemd die ik gisteren tegenkwam. Het werk - dat me een dag en een half lang in de war bracht.
Ik had een toepassing (geschreven op het Portal I' die ik eerder noemde. De gemeenschappelijke wetgeving van het land. Onderwijsgemeenschap), die gebruik maakt van Data Toegang verkry Aansoekblokom de DAL te leveren - die ik zeer aanbeveel. Hoe dan ookM SK2 Dit is altijd foutloos geweest op elke platform Ik heb het geprobeerd op . de code is onder
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 die het biedt, SqlHelperParameterCache.GetSpParameters (commenteerd In de code above) - populaeert dit gewoon een reeks SqlParameters met De teruggestuurde parameters van de DB - besparen wat coderen en maken het app makkelijker. Opdateer wanneer de SP's veranderen - nice!
Hoe dan ook, dit werkte foutloos, snel, efficiënt en efficiënt tot nu toe. Ik probeerde de testomgeving in te zetten op donderdag. - Ik kreeg steeds verschillende fouten. ernstige fout en algemene netwerkfout terug van SQL Server 2000 toen ik probeerde te runnen De gecommenteerde code hierboven was . Wel, de versie van .NET op die machine was \1.0.3705.352
- Een versie die ik nooit gezien had en niet kan krijgen, maar ik stelde vast dat het allemaal mooi was. Veel hetzelfde, misschien een paar bugfixes, maar dat is het.
Umm... verkeerd, blijkt dat deze versie een groot probleem heeft als je probeert de parameters te krijgen. Terug van een SP wanneer de SP een 'text'-type veld verwacht.
- en veroorzaakt dit verschrikkelijke, puzzling fout. oplossingM SK2 expliciet de veldtypes declareren. Voor de parameters als je SP een 'text' veld bevat. Het kan meer beïnvloeden: 'binair'typesM SK2
Hoe dan ook, is nu opgelost - maar ik raad je aan om te upgraden naar 1.1 -, wat ook fantastisch is. Ik ontdekte iets van een paar blokjes op het blog. ASP.NET Weblogs Eenvoudig, maar het spaart een beetje typen, lijkt dat DropDownList (Ik verwacht RadioButtonList heeft het ook, maar heeft het niet geprobeerd Hoe cool is dat - nou ja, niet zo cool, maar wel beter dan het oude ddl.SelectedItem .ValueM SK5bit? korter...