الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Pass parameter from Application to SP Using LINQ

بدأه abdul85 في 30 يناير 2012 · 3 رد · 409 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

شباب اريد اكتب SP للبحث .. واريد ارسل parameter البحث من Application

مثال :

Create procedure [dbo].[GetALlCountry

'qry as nvarchar(500)='and CounId=1@

as

begin

select CounId,counQuestion,counAnswer1,counAnswer2,counAnswer3,counAnswer4,counCorrect

from dbo.TbCountry

where counActive=1 + @qry

هذي SP اعلاه تديني الخطا التالي عندي تشغيلها من SQL server

" Msg 245, Level 16, State 1, Procedure GetALlCountry, Line 6

Conversion failed when converting the nvarchar value 'and CounId=1' to data type int."

وعملت SP بطريقه ثانية كالتالي ، بحيث جعلت كل select في متغير واحد ومضاف اليه qry البحث المرسل من التطبيق .. المثالي التالي يوضح اكثر.

[Create procedure [dbo].[GetALlCountry

'qry as nvarchar(500)='and CounId=1@

as

begin

(declare @finalQry as nvarchar(max

set @finalQry='select CounId,counQuestion,counAnswer1,counAnswer2,counAnswer3,counAnswer4,counCorrect

from dbo.TbCountry

where counActive=1' +@qry

exec sp_sqlexec @finalQry

وهذي SP اشتغلت بنجاح في Sql server ولكن بعد استخدام هذه SP في التطبيق من خلال LINQ .. يظهرلي للخطأ التالي

" Unable to cast object of type 'System.Int32' to type 'System.Collections.IEnumerable'. "

لذا يا شباب اذا في طريقه اقدر اعمل SP تستقبل Parameter من نوع String ويستقبل هذه المتغير مجموعه من query للبحث . واستخدام هذه SP من خلال LINQ في .net . وشاكرلكم تعاونكم .

#2

السلام عليكم.

أخي المشكلة التي ذكرتها في الاجراء الأول, أنت بنفسك حللتها باستخدام الاجراء الثاني :)

الآن رسالة الخطأ الناتجة عند استخدام الاجراء الثاني ليست من SQL Server و لكن النتيجة المرتجعة من الاجراء هي عدة سجلات و بعدة أعمدة و يبدو أنك تستخدم في LINQ استعلام يحتاج إلى قيمة عددية صحيحة و هذا مايسبب الخطأ!!

على كل إذا استطعت أن تضع كود ال LINQ حتى نراجعه معك و نحاول فهم المشكلة بشكل أكبر.

على فكرة السؤال كان يجب أن يتم طرحه في منتديات .NET و ليس SQL Server كونه متعلق ب LINQ.

#3
Adel Khayata كتب:

السلام عليكم.

أخي المشكلة التي ذكرتها في الاجراء الأول, أنت بنفسك حللتها باستخدام الاجراء الثاني :)

الآن رسالة الخطأ الناتجة عند استخدام الاجراء الثاني ليست من SQL Server و لكن النتيجة المرتجعة من الاجراء هي عدة سجلات و بعدة أعمدة و يبدو أنك تستخدم في LINQ استعلام يحتاج إلى قيمة عددية صحيحة و هذا مايسبب الخطأ!!

على كل إذا استطعت أن تضع كود ال LINQ حتى نراجعه معك و نحاول فهم المشكلة بشكل أكبر.

على فكرة السؤال كان يجب أن يتم طرحه في منتديات .NET و ليس SQL Server كونه متعلق ب LINQ.

اشكرلك تواصلك استاذ : واسف على وضع السؤال هنا .

هذا كود LINQ

()Public Function GetCpuntry

Try

"Dim quer As String = "and CounId=1

(Dim result = From aa In ConnectionStr.GetALlCountry(quer

Catch ex As Exception

End Try

End Function

#4

ماهو الكود المستخدم في :

ConnectionStr.GetALlCountry(quer)

مواضيع مشابهة