# Περάστε την ημέρα κρυπτογράφηση...(and .NET ΜSK2 bug

<datetime class="hidden">2004-02-29T00:00</datetime>

<!-- category -- mostlylucidcouk, Imported, .NET, Database, Software Development -->
I'm working...hmmM SK2thought IΜSK3t mention a very strange bug I came across yesterday at
Δουλειά - που με είχε παζλ για περίπου μια μέρα και μισήΜSK1

Έγραψα μια αίτηση (The Portal IΜSK1ve αναφέρθηκε προηγουμένως [Η
Εκπαιδευτική Κοινότητα](http://www.theeducationcommunity.com)), επιχειρήσεις που χρησιμοποιούν το [Δεδομένα
Πρόσβαση στο μπλοκ εφαρμογών](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/daab-rm.asp)Για να παρέχουμε το DAL - που συνιστώ ιδιαίτερα. Οποιαδήποτε περίπτωσηM SK2
Αυτό ήταν πάντα ακατάλληλο σε κάθε πλατφόρμα που μου άρεσε'βοί το προσπάθησαν στο.Ο κώδικας είναι κάτω απόΜSK2

```
    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);
```

Χρησιμοποιώ μια μέθοδο που παρέχει ονομάζεται SqlHelperParameterCache.GetSpParameters (αναφέρθηκε
έξω στον παραπάνω κώδικα) ΜSK1 αυτό βασικά απλώς κατοικεί μια σειρά από SqlParameters με
Οι παραμέτρους που επιστρέφονται από το DB - σίγουρα εξοικονομεί λίγο κωδικοποίηση και καθιστά την εφαρμογή ευκολότερη
να ενημερωθεί ως το SPs αλλάζει - nice!

Σε κάθε περίπτωση, το , μπορεί αυτό να έχει λειτουργήσει χωρίς σφάλματα στο , μπορεί γρήγορα στο , μπορεί να είναι αποτελεσματικό όλα αυτά τα πράγματα σε ! μπορεί μέχρις ότου το , μπορεί να
Προσπάθησα να εκτελέσω στο δοκιμαστικό μας περιβάλλον την Πέμπτη -Έχω συνεχίσει να λαμβάνω διάφορα λάθηΜSK1
Σοβαρό σφάλμα και σφάλματα γενικού δικτύου πίσω από το SQL Server 2000 αναφέρθηκε όταν προσπάθησα να εκτελέσω
ο κωδικός που σχολιάστηκε παραπάνω. Καλώς, η έκδοση του MK2NET σε αυτό το μηχάνημα ήταν ΜSK3

- Μια εκδοχή που μου άρεσε' θα μπορούσε ποτέ να δει και μπορεί να μετρηθεί' θα μπορούσε να πάρει - αλλά υποθέτω ότι μετρήθηκε, .NET ΜSK5 ήταν όλα ωραία
  Πολύ το ίδιο αναφέρθηκε, ίσως μερικά διορθώσεις bug αλλά αυτό αναφέρθηκαν' αναφέρθη σχετικά με αυτό αναφέρει! αναφέρουν

Umm...wrong, αποδεικνύει ότι αυτή η έκδοση έχει ένα σημαντικό πρόβλημα όταν προσπαθείτε να πάρετε τις παραμέτρους
Επιστροφή από ένα SP όταν το SP περιμένει ένα 'textΜSK1 πεδίο τύπου ΜSK2 απλά παίρνει λάθος με κάποιο τρόπο

- και προκαλεί αυτό το τρομακτικό σφάλμα , ψευδώνυμο σφάλματα . Λύση, δηλώνει ρητά τους τύπους πεδίου
  για τις παραμέτρους αν το SP σας περιέχει ένα 'textΜSK1 πεδίο ΜSK2 ειδικά ένα I've δοκιμάστηκε για
  Μπορεί να επηρεάσει περισσότερα ' μη συνδυασμένα ΜSK1 ειδικά είδη ΜSK2 ειδικά

Εν πάση περιπτώσει , fixed τώρα ΜSK1 αλλά σας συνιστώ να αναβαθμίσετε σε ΜSK2 - που έχει επίσης μια φανταστική
Κάτι που ανακάλυψα από κάποια μπλοκάκια στο blog [ASP. Υποστήριξη
Weblogs](http://weblogs.asp.net) απλό, αλλά εξοικονομεί λίγο από την πληκτρολόγηση, ίσως φαίνεται ότι DropDownList ( ίσως αναμένω
Το RadioButtonList το έχει επίσης, αλλά δεν το προσπάθησεΜSK1 που είναι μια ιδιοκτησία SelectedValue -
Πόσο cool είναι ότι - καλά δεν το κρύοΜSK1 αλλά το ΜSK2 καλύτερα από ό, τι κάνει το παλιό ddlM SK3SelectedItem.Value
Μικρότερες εταιρείες