موصى به: حول التعامل مع الاستثناءات تحت ASP.NET AJAX في الآونة الأخيرة ، عندما كنت أعمل في مشروع ، قمت بتطبيق ASP.NET AJAX كثيرًا. نظرًا لأنه في وضع التحديث غير المتزامن لـ UpdatePanel ، فإن الاستثناءات التي تحدث أثناء معالجة الخلفية لن تتسبب في تغييرات في واجهة العميل ، ولكنها ستظهر بشكل مباشر معلومات الاستثناء في وضع التنبيه. لذلك كنت كسولًا وترتكب خطأً مباشرة عندما تكتشف الخلفية المدخلات التي لا تفي بالمتطلبات.
20 نصائح مفيدة جدا في ASP:
1. كيفية استخدام ASP لتحديد المسار الفعلي الافتراضي لموقع الويب الخاص بك
الإجابة: استخدم طريقة mappath
<p align = center> <font size = 4 face = arial> <b>
المسار الفعلي لهذا الموقع الافتراضي هو:
</b> </font>
<font color =#ff0000 size = 6 face = arial>
<٪ = server.mappath (/) ٪>
</font> </p>
2. كيف أعرف المتصفح الذي يستخدمه المستخدم؟
الإجابة: استخدم طريقة كائن الطلب
strbrowser = request.servervariables (http_user_agent)
إذا instr (strbrowser ، msie) <> 0 ثم
استجابة.
آخر
استجابة.
إنهاء إذا
3. كيفية حساب متوسط عدد الزيارات المتكررة يوميًا
الإجابة: الحل
<٪ startDate = Datediff (D ، الآن ، 01/01/1910)
إذا كان strdate <0 ثم ابدأ = startDate*-1
AVGVPD = int ((usercnt)/startDate) ٪>
إظهار النتائج
<٪ Response.write (AVGVPD) ٪>
هذا هو. تم عرض هذه الصفحة منذ 10 نوفمبر 1998
4. كيفية عرض صور عشوائية
<٪ Dim P ، PPIC ، DPIC
PPIC = 12
عشوائي
p = int ((ppic*rnd) 1)
DPIC = GRAPHIX/RANDOMPICS/& P & .GIF
٪>
يعرض
<img src = <٪ = dpic ٪>>
5. كيفية العودة إلى الصفحة السابقة
الإجابة: <a href = <٪ = request.servervariables (http_referer) ٪>> preivous page </a>
أو استخدم صورة مثل: <img src = arrowback.gif alt = <٪ = request.servervariables (http_referer) ٪>>
6. كيفية تحديد عنوان IP للطرف الآخر
الإجابة: <٪ = request.ServerVariables (Remote_addr) ٪>
7. كيفية الارتباط بالصورة
الإجابة: <٪ @اللغات = vbscript ٪>
<٪ استجابة. expires = 0
strimagename = Graphix/errors/erroriamge.gif
استجابة.
٪>
8. مربع الحوار إدخال كلمة مرور القوة
الإجابة: ضع هذه الجملة في بداية الصفحة
<٪ response.status = 401 غير مصرح به
استجابة
٪>
9. كيفية تمرير المتغيرات من صفحة إلى أخرى
الإجابة: استخدم النوع المخفي لتمرير المتغيرات
<٪ method form = post Action = myNextPage.asp>
<٪ لكل عنصر في request.form ٪>
<اسم الإدخال = <٪ = item ٪> type = Hidden
value = <٪ = server.htmlencode (request.form (item)) ٪>>
<٪ next ٪>
< /form>
10. لماذا أستخدم MSGBox في برنامج ASP؟ يقول خطأ البرنامج لا يوجد إذن
الإجابة: نظرًا لأن ASP يتم تشغيله بواسطة الخادم ، إذا كان يمكن عرض مربع حوار على الخادم ، فيجب عليك الانتظار حتى يتمكن شخص ما من الضغط قبل تنفيذ البرنامج. بشكل عام ، لن يكون هناك أحد على الخادم ، لذلك يتعين على Microsoft حظر هذه الوظيفة وإخبارك بشكل عشوائي (هاها) أنه لا يوجد إذن. ومع ذلك ، يمكن لـ ASP والبرامج النصية العميل عرض مربع حوار ، على النحو التالي:
11. هل هناك طريقة لحماية رمز المصدر الخاص بك وعدم السماح للناس برؤيته
ج: يمكنك تنزيل برنامج تشفير Microsoft Windows Script ، والذي يمكنه تشفير البرامج النصية ASP ونصوص JavaScript/VBSCript. . . ومع ذلك ، بعد تشفير العميل ، يمكن تنفيذ IE5 فقط. بعد تشفير الخادم ، فقط إذا تم تثبيت Script Engine 5 على الخادم (يمكن العثور على تثبيت واحد IE5).
12. كيف يمكنني نقل سلسلة الاستعلام من ملف ASP إلى آخر؟
الإجابة: يضيف الملف السابق الجملة التالية: respons.redirect (second.asp؟ & request.servervariables (Query_String))
13. ملف Global.asa لا يعمل دائمًا؟
الإجابة: فقط عندما يتم تعيين دليل الويب على تطبيق الويب ، يكون Global.ASA صالحًا ، و Global.ASA صالح في الدليل الجذر لتطبيق الويب. يمكن لـ IIS4 استخدام مدير خدمة الإنترنت لإعداد إعدادات التطبيق كيف يمكن لملف HTM تنفيذ رمز البرنامج النصي مثل ملف ASP؟
14. كيف يمكن أن يتمكن ملف HTM من تنفيذ رمز البرنامج النصي مثل ملف ASP؟
الإجابة: مدير خدمات الإنترنت -> حدد موقع الويب الافتراضي -> زر الماوس الأيمن -> خصائص القائمة -> الدليل الرئيسي -> إعدادات التطبيق -> انقر فوق زر تكوين -> تنظيم التطبيق -> انقر فوق زر إضافة -> متصفح قابل للتنفيذ SELECT /WINNT/SYSTEM32/INETSRV/ASP.DLL Extension ENDENT ENCLUSIONS ENTER ومع ذلك ، تجدر الإشارة إلى أنه بهذه الطريقة ، سيتم تقليل الكفاءة.
15. كيفية تسجيل المكونات
الإجابة: هناك طريقتان.
الطريقة الأولى: تسجيل DLL يدويًا يتم استخدام هذه الطريقة من IIS 3.0 إلى IIS 4.0 وخوادم الويب الأخرى. يتطلب منك تنفيذها في سطر الأوامر ، وإدخال الدليل الذي يحتوي على DLL ، وإدخال: REGSVR32 Component_name.dll على سبيل المثال ، C:/Temp/REGSVR32 ASPEMAIL.DLL سوف يقوم بتسجيل المعلومات المحددة لـ DLL في السجل في الخادم. ثم يمكن استخدام هذا المكون على الخادم ، ولكن هذه الطريقة لها عيب. بعد تسجيل مكون باستخدام هذه الطريقة ، يجب على المكون تعيين الحساب المجهول المقابل مع NT للحصول على إذن لتنفيذ DLL هذا. على وجه الخصوص ، تحتاج بعض المكونات إلى قراءة السجل ، وبالتالي فإن طريقة تسجيل المكونات هي فقط للاستخدام إذا لم يكن هناك MTS على الخادم. لإلغاء تسجيل هذا DLL ، استخدم: regsvr32 /u aspobject.dll مثال c: /temp /recsvr32 /u aneiodbc.dll
الطريقة الثانية: استخدام MTS (Microsoft Transaction Server) MTS هو ميزة جديدة لـ IIS 4 ، ولكنه يوفر تحسنًا كبيرًا. يتيح لك MTS تحديد أنه يمكن للمستخدمين المميزين فقط الوصول إلى المكونات ، وتحسين إعدادات الأمان بشكل كبير على خادم الموقع. خطوات تسجيل مكون على MTS هي كما يلي:
1) افتح وحدة التحكم في إدارة IIS.
2) توسيع خادم المعاملات ، انقر بزر الماوس الأيمن فوق PKGs مثبتة وحدد حزمة جديدة.
3) انقر فوق إنشاء حزمة فارغة.
4) اسم الحزمة.
5) حدد حساب المسؤول أو استخدم التفاعل (إذا كان الخادم غالبًا ما يقوم بتسجيل الدخول مع المسؤول).
6) استخدم الآن انقر بزر الماوس الأيمن فوق المكونات الموسعة أسفل الحزمة التي أنشأتها للتو. حدد مكون جديد ثم مكون.
7) حدد تثبيت مكون جديد.
8) ابحث عن ملف .dll الخاص بك وحدد بجوار الانتهاء.
لحذف هذا الكائن ، فقط حدد أيقونةه وحدد حذف.
ملاحظة: إيلاء اهتمام خاص للطريقة الثانية ، وهي أفضل طريقة لتصحيح المكونات التي تكتبها بنفسك دون الحاجة إلى إعادة تشغيل الجهاز في كل مرة.
16. قم بتوصيل ASP للوصول إلى قاعدة البيانات:
Dim Conn ، Mdbfile
mdbfile = server.mappath (اسم قاعدة البيانات. mdb)
تعيين conn = server.createBject (adodb.connection)
CONN.OPEN DRIVER = {Microsoft Access Driver (*.mdb)} ؛ UID = admin ؛
17. قم بتوصيل ASP بقاعدة بيانات SQL:
قاتمة كون
تعيين conn = server.createBject (adodb.connection)
con.open ؛ provider = sqloledb ؛ مصدر البيانات = اسم خادم SQL أو عنوان IP ؛ uid = sa ؛ pwd = كلمة مرور قاعدة البيانات ؛ قاعدة البيانات = اسم قاعدة البيانات
قم بإنشاء كائن تعيين سجل:
تعيين rs = server.createBject (adodb.recordset)
RS.Open SQL بيان ، كون ، 3،2
18. طرق استخدام أمر SQL المشترك:
(1) تصفية سجل البيانات:
SQL = حدد * من جدول البيانات حيث اسم الحقل = ترتيب قيمة الحقل حسب اسم الحقل [DESC]
SQL = SELECT * من جدول البيانات حيث اسم الحقل مثل قيمة الحقل ٪ ORDER حسب اسم الحقل [DESC]
SQL = حدد أعلى 10 * من جدول البيانات حيث ترتيب اسم الحقل حسب اسم الحقل [DESC]
SQL = حدد * من جدول البيانات حيث اسم الحقل في (القيمة 1 ، القيمة 2 ، القيمة 3)
SQL = حدد * من جدول البيانات حيث اسم الحقل بين القيمة 1 والقيمة 2
(2) تحديث سجلات البيانات:
SQL = تحديث جدول البيانات تعيين اسم الحقل = قيمة الحقل حيث التعبير الشرطي
SQL = تحديث جدول بيانات جدول البيانات 1 = القيمة 1 ، الحقل 2 = القيمة 2 ... الحقل N = القيمة N حيث التعبير الشرطي
(3) حذف سجلات البيانات:
SQL = حذف من جدول البيانات حيث التعبير الشرطي
SQL = حذف من جدول البيانات (حذف جميع السجلات في جدول البيانات)
(4) إضافة سجلات البيانات:
SQL = إدراج في جدول البيانات (الحقل 1 ، الحقل 2 ، الحقل 3 ...) التقييم (القيمة 1 ، القيمة 2 ، القيمة 3 ...)
sql = insert في جدول بيانات الهدف حدد * من جدول بيانات المصدر (أضف سجل جدول بيانات المصدر إلى جدول البيانات الهدف)
(5) وظيفة إحصائيات سجل البيانات:
AVG (اسم الحقل) للحصول على متوسط قيمة عمود جدول
العد (*| اسم الحقل) الإحصائيات على عدد صفوف البيانات أو الإحصائيات على عدد صفوف البيانات مع القيم في عمود معين
ماكس (اسم الحقل) احصل على أقصى قيمة لعمود الجدول
دقيقة (اسم الحقل) احصل على الحد الأدنى لقيمة عمود الجدول
يضيف SUM (اسم الحقل) قيمة عمود البيانات
الرجوع إلى طريقة الوظيفة أعلاه:
SQL = حدد SUM (اسم الحقل) كاسم مستعار من جدول البيانات حيث التعبير الشرطي
تعيين rs = conn.excute (SQL)
استخدم RS (الاسم المستعار) للحصول على الإحصاءات ، ويتم استخدام الوظائف الأخرى كما هو مذكور أعلاه.
(5) إنشاء وحذف جداول البيانات:
إنشاء اسم جدول بيانات الجدول (الحقل 1 النوع 1 (الطول) ، الحقل 2 النوع 2 (الطول) ...)
مثال: إنشاء Table Tab01 (Name varchar (50) ، DateTime Default Now ())
اسم جدول بيانات جدول إسقاط (حذف جدول بيانات بشكل دائم)
19. طرق تسجيل الكائنات:
Rs.Movenext ينقل مؤشر السجل أسفل سطر واحد من الموضع الحالي
Rs.Moveprevious ينقل مؤشر التسجيل إلى أعلى سطر من الموضع الحالي
Rs.MoveFirst ينقل مؤشر السجل إلى الصف الأول من جدول البيانات
Rs.Movelast ينقل مؤشر التسجيل إلى الصف الأخير من جدول البيانات
rs.absoluteposition = n نقل مؤشر السجل إلى الصف n من جدول البيانات
rs.absolutepage = n نقل مؤشر السجل إلى السطر الأول من الصفحة n
rs.pagesize = n قم بتعيين كل صفحة على سجلات n
Rs.PageCount يعيد إجمالي عدد الصفحات وفقًا لإعدادات التصوير
RS.RecordCount يعيد إجمالي عدد السجلات
RS.BOF يعيد ما إذا كان مؤشر السجل يتجاوز رأس جدول البيانات. حقيقي يعني نعم ، خطأ لا
RS.EOF يرجع ما إذا كان مؤشر السجل يتجاوز نهاية جدول البيانات ، صحيح يعني نعم ، خطأ لا
Rs.Delete يحذف السجل الحالي ، لكن مؤشر السجل لا يتحرك لأسفل
Rs.Addnew أضف سجلًا إلى نهاية جدول البيانات
سجلات جدول بيانات RS.UPDATE
-----------------------------------
20 طريقة كائن مجموعة السجل
طريقة مفتوحة
RecordSet.Open Source ، ActivEconnection ، CursorType ، Locktype ، Options
مصدر
يمكن توصيل كائن مجموعة السجل بكائن الأمر من خلال الخاصية المصدر. يمكن أن تكون المعلمة المصدر اسم كائن أمر أو أمر SQL أو اسم جدول بيانات محدد أو إجراء مخزن. إذا تم حذف هذه المعلمة ، يستخدم النظام الخاصية المصدر لكائن مجموعة السجلات.
ActiveConnection
يمكن توصيل كائن مجموعة السجل بكائن الاتصال من خلال خاصية ActivEconnection. يمكن أن يكون ActiveConnection هنا كائن اتصال أو معلمة سلسلة تحتوي على معلومات اتصال قاعدة البيانات (ConnectionString).
cursortype
تشير المعلمة cursortype للطريقة المفتوحة لكائن مجموعة السجلات إلى نوع المؤشر لبدء البيانات ، بما في ذلك endiNforwardonly ، endiNkeyset ، enserendynamic and endenstatic ، والتي يتم وصفها على النحو التالي:
-------------------------------------------------------------
وصف قيمة ثابتة ثابتة
-----------------------------------------------------
endireDwardonly 0 القيمة الافتراضية ، يبدأ المؤشر الذي لا يمكنه التحرك إلى الأمام فقط (للأمام فقط).
AdapteNkeySet 1 يبدأ مؤشر نوع المفاتيح.
Adopeendynamic 2 ابدأ مؤشر نوع ديناميكي.
AdopeenStatic 3 يبدأ مؤشر نوع ثابت.
-----------------------------------------------------
ستؤثر أنواع المؤشر أعلاه بشكل مباشر على جميع خصائص وطرق كائن مجموعة السجلات. القائمة التالية تشرح الفرق بينهما.
-----------------------------------------------------
خاصية مجموعة السجلات argateNforwardonly AdopeenkeySet Adopeendynamic arnevenstatic
-----------------------------------------------------
لا يدعم Abssoppage قابلاً للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة
لا يدعم المطلقات المطلقة قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة
ActivEconnection قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة
bof للقراءة فقط للقراءة فقط للقراءة فقط
الإشارة المرجعية لا تدعم قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة
ذرة مخادعة قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة
corsorlocation قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة
cursortype قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة
EditMode للقراءة فقط للقراءة فقط للقراءة فقط
EOF للقراءة فقط للقراءة فقط للقراءة فقط
تصفية قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة
قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة
قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة
MaxRecords قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة
لا يدعم PageCount القراءة فقط للقراءة فقط
pagesize قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة
لا يدعم RecordCount القراءة فقط للقراءة فقط
المصدر قابل للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة ، قابلة للقراءة ، قابلة للكتابة
القراءة للقراءة فقط للقراءة فقط للقراءة فقط
القراءة للقراءة فقط للقراءة فقط للقراءة فقط
دعم دعم دعم دعم AddNew
دعم دعم دعم دعم دعم الدعم
دعم دعم دعم دعم دعم دعم
استنساخ لا يدعمه أم لا
دعم دعم دعم الدعم الوثيق
حذف دعم دعم الدعم
دعم دعم دعم Getrows
لا تدعم MOVE دعم دعم الدعم
دعم دعم دعم دعم دعم الدعم
لا يدعم Movelast دعم الدعم
دعم دعم دعم دعم دعم Movenext
MovePrevious غير مدعوم دعم دعم دعم الدعم
دعم دعم دعم دعم دعم دعم دعم الدعم
دعم دعم الدعم المفتوح
دعم دعم دعم طلبات الاسكشافات
لا تدعم Resync دعم الدعم
يدعم دعم الدعم
دعم دعم دعم الدعم
دعم دعم دعم دعم الدعم
-------------------------------------------------------------
لا تنطبق طريقة NextRecordSet على قواعد بيانات Microsoft Access.
Locktype
تشير المعلمة Locktype للطريقة المفتوحة لكائن مجموعة السجل إلى نوع القفل الذي سيتم اعتماده. إذا تم تجاهل هذه المعلمة ، فسيستخدم النظام خاصية LockType لكائن مجموعة السجلات كقيمة محددة مسبقًا. تشمل معلمات Locktype adlockreadonly و adlockprssimistic و adlockoptimist و adlockbatchoptimist ، وما إلى ذلك ، ويتم وصفها على النحو التالي:
-----------------------------------------------------
وصف قيمة ثابتة ثابتة
-------------------------------------------------------------
AdlockReadOnly 1 القيمة الافتراضية ، يتم تشغيل كائن مجموعة السجل في وضع القراءة فقط ، ولا يمكن تشغيل AddNew و Update و Delete وغيرها من الطرق.
AdlockPrsSimistic 2 عند تحديث مصدر البيانات ، يقوم النظام مؤقتًا بإغلاق إجراءات المستخدمين الآخرين للحفاظ على اتساق البيانات.
adlockoptimistic 3 عند تحديث مصدر البيانات ، لن يقوم النظام بإغلاق إجراءات المستخدمين الآخرين. يمكن للمستخدمين الآخرين إضافة البيانات وحذفها وتعديلها.
AdlockBatchopTimistic 4 عند تحديث مصدر البيانات ، يجب على المستخدمين الآخرين تغيير خاصية CursorLocation إلى AdudeclientBatch لزيادة البيانات.
حذف وتعديل* العمل.
المشاركة: يجب أن يكون لدى مبرمجي ASP المعرفة اتصال قاعدة البيانات: ٪ set conn = server.createObject (adodb.connection) conn.open driver = {microsoft access driver ( * .mdb)} ؛ dbq = server.mappath (اسم قاعدة البيانات) ٪ افتح قاعدة البيانات: exec = selec