PDA

View Full Version : سوال: ارتباط با stored procedure ها در C#‎‎



Marzieh_A
پنج شنبه 24 دی 1388, 20:16 عصر
دوستان عزیز چطوری میشه در برنامه نویسی C#‎‎ با stored procedure هاب sql کار کرد؟
من stored procedureی به صورت زیر دارم





ALTER PROCEDURE [dbo].[SP_nemoone]
@TypeSql smallint = 0 ,
@ID int ,
@UserN nvarchar(50) = null



AS
BEGIN

-- insert
if @TypeSql = 1
begin

declare @TempCount AS smallint ;
set @TempCount=0;
select @TempCount=count(*) from nemoone WHERE ID=@ID;
if (@TempCount=0)
begin
set identity_insert nemoone ON;
insert into nemoone values (@UserN,);
set identity_insert nemoone OFF;
end
else
begin
update nemoone set UserN=@UserN where ID=@ID;
end
return 11;
end
-- -- delete
else if @TypeSql=2
begin
delete from nemoone where ID=@ID;
return 22;
end
-- Max Code
else if @TypeSql=3
begin
SELECT * FROM nemoone;
return 33;
end
--select
else if @TypeSql=4
begin
select * from nemoone where ID=@ID;
return 44;
end

return 0


END


که طبق مقدار sqltype عمل مورد نظر رو انجام میده.
چه جوری می تونم با این stored procedure در C#‎‎ ازتباط برقرار کنم؟

ممنون:لبخند:

linux
پنج شنبه 24 دی 1388, 21:06 عصر
با sqlcommand برای اطلاع بیشتر MSDN را مطالعه کنید

Marzieh_A
پنج شنبه 24 دی 1388, 21:17 عصر
ممنون
خودم هم می دونم با sqlcommand :متفکر:
اما چه جوریش رو می خوام!:اشتباه:

sajjadzare
پنج شنبه 24 دی 1388, 23:09 عصر
SqlConnection sq = new SqlConnection();
sq.open();
string f = string.Format("execute sp_nemoone {0},{1},'{2}'",Typesql , Id, userN);
SqlCommand sc = new SqlCommand(f, sq);
sc.ExecuteNonQuery();
sq.close();s

hakelberfin
جمعه 25 دی 1388, 00:08 صبح
سلام
در این لینک من برنامه ای رو نوشتم که در اون از StoreProcedure استفاده شدهhttp://barnamenevis.org/forum/showthread.php?t=188003

mohammadi4net
جمعه 25 دی 1388, 00:50 صبح
برای وقتی که stored procedure مقدار برگشتی دارد:
string ConectionString = "Data Source=.;Initial Catalog=Test;Integrated Security=True";
string queryString = "EXEC [dbo].[SP_nemoone] ... ";
using (SqlConnection connection = new SqlConnection(ConectionString))
{
connection.Open();
SqlDataReader reader = new SqlCommand(queryString, connection).ExecuteReader();
while (reader.Read())
{

// دستورات برای مقادیر برگشتی reader("myfilde")
}
}

mohammadi4net
جمعه 25 دی 1388, 00:52 صبح
برای وقتی که stored procedure مقدار برگشتی ندارد:
string ConectionString = "Data Source=.;Initial Catalog=Test;Integrated Security=True";
string queryString = "EXEC [dbo].[SP_nemoone] ... ";
using (SqlConnection connection = new SqlConnection(ConectionString))
{
connection.Open();
SqlCommand command=new SqlCommand(queryString, connection);
command.ExecuteNonQuery();
}