PDA

View Full Version : سوال: مشکل در ارسال پارامتر به روال تعریف شده در پایگاه داده



akbar_online
شنبه 29 تیر 1392, 12:43 عصر
با سلام
در sql server من برای بروز رسانی یکی از جدول ها روال زیر تعریف کردم

ALTER PROCEDURE [dbo].[USP_UpdateRoom2]
(
@Number_Room nchar(10),
@Status1 nchar(10),
@empt bit,
@busy bit,
@clean bit,
@repier bit,
@rezerv bit
)
AS
UPDATE ROOM
SET
Status1=@Status1,
busy=@busy,
clean=@clean,
repier=@repier,
empt=@empt,
rezerv=@rezerv
WHERE Number_Room=@Number_Room

داخل برنامه اصلی از دستورات زیر برای بروز رسانی استفاده کردم


objdata.SQL = "USP_UpdateRoom2"
objdata.InitializeCommand()
objdata.AddParameter("@Number_Room", Data.SqlDbType.NChar, 20, TextNumberRoom2.Text)
objdata.AddParameter("@Status1", Data.SqlDbType.NChar, 20, "رزروی".Trim)
objdata.AddParameter("@rezerv", Data.SqlDbType.Bit, 20, True)
objdata.OpenConnection()
intRowsAffected = objdata.Command.ExecuteNonQuery
objdata.CloseConnection()

(objdata یک شی از کلاسی که برای کار با پایگاه داده می باشد)
سوال من اینکه وقتی 2تا از این پارامتر هایی که تعریف کردم را به پایگاه داده ارسال می کنم از بقیه پارامتر که ارسال نشده پیغام خطا میگیره چیکار کنم هر دفعه که می خوام فقط چند تا از پارامترها را ارسال کنم خطا نگیره

Mani_rf
شنبه 29 تیر 1392, 12:51 عصر
پارامترهای STP همه اجباری هستند. اگر مقدار بعضی از اونها خالیه باید همون مقدار خالی رو بفرستی. یا حتی اگر میخای باید مقدار Null یا همون Nothing تو VB.Net رو بفرستی

akbar_online
شنبه 29 تیر 1392, 15:32 عصر
میخوام که مقدار فیلدهای ذیگه تغییر نکنه

r. salehi
یک شنبه 30 تیر 1392, 02:38 صبح
فکر می کنم راحت ترین کار این باشه که چندتا STP برای حالتهای مختلف بنویسید و به فراخور شرایطی که در برنامه دارید STP مورد نظر را فراخوانی کنید. این طور نه نیازی به برنامه نویسی پیچیده در SQL دارید و نه بار اضافه ای به سرورتون وارد می شه. در هر صورت ارسال تمام پارامترهای تعریف شده در STP اجباریه.
موفق باشید