PDA

View Full Version : استفاده از store procedure



sempay_ninjutsu
جمعه 18 تیر 1389, 12:46 عصر
سلام بر همگی
دوستان من تو اس کیو ال یه استور پروسیج درج اطلاعات نوشتم حالا میخوام اونو تو اپلیکیشن استفاده کنم.چه جوری میتونم دسترسی داشته باشم به اون.میدونم ار طریق خاصیت comandtext دیتا آداپتوره.ولی نمیدونم چه جوری ورودی به اون بدم.
کسی یه تکه کدم بذاره ممنوم میشم.

sempay_ninjutsu
جمعه 18 تیر 1389, 17:46 عصر
بچه نوشتمش اینم کدش:


SqlConnection objconnection = new SqlConnection("server=VAHID-8BD554FAA;database=example;integrated security=true;");
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "sese_insert";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@name","arash");
cmd.Parameters.AddWithValue("@family","amini");
cmd.Connection = objconnection;
objconnection.Open();
cmd.ExecuteNonQuery();
objconnection.Close();

RIG000
جمعه 18 تیر 1389, 17:48 عصر
الان مشکل برنامه تو چی هستش؟
اگه برنامه زیاد مهم نی بذارش ببینیم

sempay_ninjutsu
جمعه 18 تیر 1389, 19:20 عصر
کد بالا درست است ولی این کده این ارورو میده:

the size property has on invalid size of 0.

SqlConnection objconnection = new SqlConnection("server=VAHID-8BD554FAA;database=example;integrated security=true;");
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "sese_insert1";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@name","moghggggggsem");
cmd.Parameters.AddWithValue("@family","atashigggggggn");
cmd.Parameters .Add ("@resualt",SqlDbType.VarChar);
cmd.Parameters["@resualt"].Direction = ParameterDirection.Output;
cmd.Connection = objconnection;
objconnection.Open();
cmd.ExecuteNonQuery();
MessageBox.Show(cmd.Parameters["@resualt"].Value.ToString());
objconnection.Close();
میخوام به متغیر خروجیم تو استور پروسیجر دسترسی داشت باشم اما این ارورو میده.این کد رو واسه متغیر اینتیجر امتحان کردم درست بود.استور پروسیجر رو هم امتحان کردم اون درست کار میکرد.

sempay_ninjutsu
جمعه 18 تیر 1389, 19:25 عصر
اینم کد استور پروسیجر.این درست کار میکنه ولی برنامه نه!!!!!!
USE [example]
GO
/****** Object: StoredProcedure [dbo].[sese_insert1] Script Date: 06/05/2010 20:47:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[sese_insert1]
@name varchar(50),@family varchar(50),@resualt varchar(50) output
as
set nocount on
insert into student
values(@name,@family);
if @@ERROR =0 and @@ROWCOUNT =1
begin
set @resualt ='not found error'
end
else
begin
set @resualt ='erro '

end

sempay_ninjutsu
جمعه 01 مرداد 1389, 19:41 عصر
این مشکلم حل شد فقط کافیه که اندازه نوع خروجی را ذکر کنیم.
cmd.Parameters .Add ("@resualt",SqlDbType.VarChar,50
لازم نیست که همان اندازه متغیر باشه ولی نباید از مقدار آن بیشتر باشه.

در پناه حق