سؤال

لدي بعض الكود:

using (OAZISDBDataContext ctx = new OAZISDBDataContext())
            {                    
                IEnumerable<DBContactDetail> details = ctx.ExecuteQuery<DBContactDetail>("exec [dbo].[zna_contact] {0}, {1}",
                    "test", "19601023",
             }

ومع ذلك ، أريد أيضًا أن أكون قادرًا على تمرير قيم فارغة إلى الإجراء المخزن حتى لا يستخدمها.

الآن مع الأوتار ، هذا أمر سهل ، يمكنني فقط تمرير سلسلة. Empty وسيعمل. ومع ذلك ، إذا كنت أرغب في تمرير تواريخ فارغة ، فهذه مشكلة.

من الواضح أنني حاولت:

using (OAZISDBDataContext ctx = new OAZISDBDataContext())
            {                    
                IEnumerable<DBContactDetail> details = ctx.ExecuteQuery<DBContactDetail>("exec [dbo].[zna_contact] {0}, {1}",
                    "test", null,
             }

لكن هذا لا يعمل ، يعطي الخطأ:

System.Exception: لا يمكن أن يكون QueryParameter من النوع. object.

بعد القراءة ، اكتشفت أن التنفيذي لا يدعم المعلمات الفارغة بينما يؤكد المواصفات أنه ينبغي.

هل واجه أي شخص هذه القضية ووجد حلًا؟

اشكرك كثيرا

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

المحلول

هل جربت:

DBNull.Value

نصائح أخرى

هل حاولت الإرسال DBNull.Value أو جديد Nullable<DateTime>() ?

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