View Full Version : ارسال چند مقدار برای یک sp
hamed_antiphp
سه شنبه 16 بهمن 1386, 02:26 صبح
سلام دوستان
دوستان راهی وجود داره که توی دات نت مقادیر مربوط به یک sp رو یک بار فرستاد .
مثلا :
من میخوام از جدول users این چند تا userid حذف بشن
100000
100002
100003
امکانش هست که من همه رو یک بار به sql server بفرستم و SQL server سه باز SP حذف رو اجرا کنه !!!
برای وب میخوام که تعداد رفت وبرگشت به سرور کم بشه !!!
حمیدرضاصادقیان
سه شنبه 16 بهمن 1386, 07:00 صبح
سلام.شما میتونی sp رو جوری بنویسی که مثلا یک رشته بگیره و اون رشته حاوی چند عدد باشه .بعد در شرطی که برای حذف قرار میدی به این صورت بنویسی.
where code in [1,2,3,4]
or
where code in [@code]
hamed_antiphp
چهارشنبه 17 بهمن 1386, 00:40 صبح
سلام
آقا حمید گل SP من به شکل زیر هستش :
CREATE PROCEDURE [delete_articles]
(@del_artid [nvarchar])
AS DELETE [fastpic].[dbo].[articles]
WHERE
( [artid] = @del_artid)
و یک gridview دارم که حالت انتخاب چند تایی داره با استفاده از chekbox و می خوام اینهایی که انتخاب شدن یک باره سرور انتقال بشن و حذف بشن .
چیزی parameters collections وجود نداره ؟؟؟
حمیدرضاصادقیان
چهارشنبه 17 بهمن 1386, 08:51 صبح
سلام.ببین عزیز شما وقتی داری کالاها رو انتخاب میکنی باید هرکدوم رو که انتخاب کردی در یک متغیر رشته ای بریزی.بعد با ویرگول هرکدوم رو از هم جدا کنی.
مثلا اگه 3 کالا انتخاب کردی باید رشته ات برابر مقدار زیر باشه
str:='100,200,300'
حالا در داخل خود sp کد زیر را می نویسی.
where code in [@str]
hamed_antiphp
چهارشنبه 17 بهمن 1386, 09:34 صبح
سلام
مرسی آقا حمید اگه ممکنه یک نمونه کامل اینجا بزارین
حمیدرضاصادقیان
چهارشنبه 17 بهمن 1386, 09:42 صبح
Create PRocedure Search @str varchar(100)
as
Select * from table1 where code in (@str)
فقط در داخل برنامه ات وقتی روی هر کالا کلیک میکنی کد اونو در یک متغیر ذخیره کن.
مثلا در هر بار کلیک بر روی هر کالا کد زیر رو بنویس
Var Str:String;
Begin
str:=str+','+fieldvalues['code'];
End;
AminSobati
چهارشنبه 17 بهمن 1386, 11:49 صبح
شما میتونین از ساختار xml هم استفاده کنین. یعنی رشته مورد نظر سمت کلاینت رو به xml تبدیل کنین و وقتی به sp ارسال کردین، با امکانات openxml یا xquery دوباره به شکل جدول ببینیدش. حالا از join بین جدول اصلی و این جدول جدید، میتونین همه رکوردهای مورد نظر رو حذف کنین.
این لینک رو حتما ببینید:
http://www.sommarskog.se/arrays-in-sql.html
MohammadSoft
پنج شنبه 18 بهمن 1386, 09:06 صبح
سلام
با اجازه استاد ثباتی این لینک می تونه یه روش دیگه برای انجام این کار باشه http://www.30sharp.com/ShowArticle.aspx?nid=13&did=92&AuthorID=2
پیروز باشید .
ارادتمند : محمد زنگنه
Sal_64
دوشنبه 16 دی 1387, 11:55 صبح
سلام
declare @id int;
set @id='2,4';
select * from tb where id in (@id) این کد ایررور
Conversion failed when converting the varchar value '2,4' to data type int.رو میده
متن ایررور واضح .
اما راهی برای convert مقدار varchar به int پیدا نکردم
فیلد id از نوع int به دلیل identity بودنش
چه باید کرد ؟
با تشکر
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.