السلام عليكم ورحمة الله وبركاته
شباب اريد اكتب 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 . وشاكرلكم تعاونكم .