# قضاء اليوم في الترميز... (و.Net 1.3705.352 bug!)

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

<!-- category -- mostlylucidcouk, Imported, .NET, Database, Software Development -->
أنا أعمل... فكرت في أن أذكر حشرة غريبة جدًا صادفتها بالأمس
- العمل الذي كان لي محيرة لحوالي يوم ونصف...

لقد كتبت طلباً (البوابة التي ذكرتها من قبل) [الـ
)ن(](http://www.theeducationcommunity.com)التي تستخدم [البيانات
& مربع](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/daab-rm.asp)على أي حال، على أي حال،
لطالما كان هذا خاطئاً على كل منصة جربتها عليها

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

استخدم طريقة توفرها تسمى SqlDeenderParamaterCacch. getSpParams (مُعَدّة)
في الكود أعلاه) - هذا أساساً فقط يُمَكّن مجموعة من مصفوفات SqlParمترات مع
البارامترات المسترجعة من DB - تحفظ قليلاً من الترميز وتجعل التطبيق أسهل
-لاستكمالها مع تغير المُسدّسات -لطيف!

على أي حال، لقد نجح هذا بشكل خاطئ، سريع، فعال كل ذلك! حتى ذلك، أنا
حاولت أن أتواجد في بيئة اختبارنا يوم الخميس استمريت في الحصول على العديد من الأخطاء
خطأ مساعد و مورِف عام الشبكة خطأ خطأ خلفيًا من خادم SSQL 2000 عندما حاولت تشغيل
حَسناً، النسخة من.NET على تلك الآلةِ كَانَت 1.3705.352

- نسخة لم أرها من قبل ولا أستطيع الحصول عليها لكن افترضت،
  تقريباً نفس الشيء، ربما بضعة حشرات، لكن هذا كل ما في الأمر!

أَمّ... خطأ، إتضح أن هذه النسخةِ لَها مشكلة رئيسية عندما تحاول الحصول على البارامترات
ترجع من سطر عندما تتوقع سطر حقل نوع 'النص' -- انها فقط تفهمه بشكل خاطئ بطريقة ما

- ويسبب هذا الخطأ المفزع المحير المفزع. الحل ، أعلن صراحة أنواع الحقل
  للبارامترات إذا كان SP الخاص بك يحتوي على حقل 'نص' (فقط واحد لقد جربته من أجله،
  يمكن أن يؤثر على أنواع أكبر من 'البيناري`).

على أي حال، تم تثبيتها الآن - ولكن أنا أنصحك بالرفع إلى 1,1 - الذي أيضاً لديه
شيء ما اكتشفته من بعض المدونين في [المحتويات
](http://weblogs.asp.net) بسيط لكن حفظ قليلاً من الطباعة، يبدو أن إسقاطاً على طولList (أتوقع)
(راديو بوتون ليست) يملكه أيضاً، لكنه لم يجربه!) تلك ملكية مختارة
كيف يكون هذا رائعاً - حسناً ليس بتلك الروعة - لكنه أفضل من القيام بعمل ddl القديم
- - - - - - - - - - - - - -