ورود

View Full Version : سوال: بکار گیری دستور IN در یک sp در دات نت



DotNet_King
یک شنبه 13 مرداد 1387, 09:56 صبح
با سلام به دوستان عزیز

من قصد دارم با این دستور مقادیر رو وارد بانک کنم



INSERTINTO #stLess (stID,LessID,LessUnit)values(
@StID , @lessID ,select [dbo].[tblLessID].[lessUnit]
from [dbo].[tblLessID] whereIN(1001,1002,1008,1015)


مشکل من اینجاست که اگه من رشته IN رو با سی شارپ یا وبی دات نت بدست بیارم اون رو به چه صورت می تونم به صورت پارامتر وارد sp بکنم؟

مثلا من به صورت داینامیک طرف دات نت بدست اورده باشم


string INtext="1002,1005,1006,1008";


می شه این متغییر رو به صورت یک پارامتر به بانک فرستاد و بعد داخل پرانتز دستور IN قرار داد


نمی دونم این سوال رو کجا بهتره مطرح کنم!

SabaSabouhi
یک شنبه 13 مرداد 1387, 13:54 عصر
با سلام

بله، امكان پذيره.
كافيه شما Query مورد نظر خودتون رو توى يك متغير بسازين و توسط sp_executesql اون رو اجرا كنيد. به اين ترتيب مى‌تونيد گزينه‌هاى خودتون رو به شكل "(1001, 1002, 1003)" به SP مورد نظر بفرستيد.

براى توضيح بيشتر به BooksOnline مراجعه كنيد.

صبا صبوحى

DotNet_King
یک شنبه 13 مرداد 1387, 14:42 عصر
صبا عزیز
از بابت راهنماییتون ممنونم
ولی میشه یه مقدار بیشتر توضیح بدید . چون نمی دونم باید چه کار بکنم مراجعه به book online برام مقید نیست چون نمی دونم تحت چه عنوانی سرچ بزنم

منظورتون اینه که کل کوری که بالا نوشتم رو به صورت تکست تو یه استرینگ در دات نت بسازم بفرستم تو یه sp و درون اون sp


create pros (@inputquery varchar(200)
as

exec ( (@inputquery )



منظورتون همچین چیزیه؟

SabaSabouhi
یک شنبه 13 مرداد 1387, 15:23 عصر
سلام
دقيقاً به اين شكل:



CREATE PROCEDURE spMyProc
@In as nvarchar(100)
AS
DECLARE @SQLString nvarchar(1000)
SET @SQLString =
N'SELECT MyColumn1, MyColumn2'
+ N' FROM MyTable'
+ N' WHERE MyKey in (' + @In + N')'
EXECUTE sp_executesql @SQLString



به همين ساده‌گى، به همين خوش‌مزگى!
با فرض اين كه به عنوان پارامتر ورودى رشته‌ى "1001, 1002, 1003" رو كه مثلاً كليد‌هاى مورد نظر هستن رو وارد كنى.

صبا صبوحى

رضا عربلو
یک شنبه 13 مرداد 1387, 17:29 عصر
Array in SQL server را مطالعه کنید:
http://www.sommarskog.se/arrays-in-sql-2000.html
و
http://www.sommarskog.se/arrays-in-sql-2005.html