سؤال

أملكasp:GridView عرض طلبات العميل باستخدام asp:SqlDataSource. أريد قصر المعلومات المعروضة من قبل العميل:

View.aspx يجب أن تعرض كل شيء ، View.aspx?client=1 يجب أن تعرض طلبات فقط من معرف العميل رقم 1.

لذلك أنا أستخدم <asp:QueryStringParameter Name="client" QueryStringField="client" /> للاستعلام "EXEC getRequests @client".

كل شيء يعمل بشكل صحيح عند تحديد بعض العميل. لكن لا - إذا لم يكن كذلك.

لقد اختبرت SP باستخدام SSMS - إنه يعمل بشكل صحيح في كلتا الحالتين - عند تحديد المعلمة وعندما لا (NULL مرت بشكل صريح).

ماذا أفعل؟

هل كانت مفيدة؟

المحلول

لن تطلق Sqldatasource إذا كانت أي من المعلمات خالية ، إلا إذا حددت خلاف ذلك:

<asp:SqlDataSource CancelSelectOnNullParameter="False" />

قد يكون من الضروري أيضًا إضافة قيمة افتراضية فارغة إلى معلمة QueryString الخاصة بك:

<asp:QueryStringParameter Name="client" QueryStringField="client" DefaultValue="" ConvertEmptyStringToNull="True" />

نصائح أخرى

تحتاج إلى تحديد قيمة افتراضية للمعلمة لتلك المواقف ، على سبيل المثال:

<asp:QueryStringParameter Name="client" QueryStringField="client" DefaultValue="0"/>

ثم في SP ، تحتاج إلى التحقق مما إذا كان العميل هو 0 ، وإرجاع جميع العملاء ، وإلا فإن العميل المحدد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top