存储过程学习日记

1.存储过程的创建

(输入,输出)

USE database_name

CREATE PROCEDURE procedure_name parameter_name data_type

--如果为output ,要在后面 添加 output

With procedure_option  --encryption 加密存储过程的定义文本;recompile每次执行存储过程时都重新编译一次

AS

sql_string

 

for example:

 

//create procedure

Use Test

Create Procedure myPro

@num1 nvchar(10),

@num2 nvchar(10),

@out_num nvchar(10)  output

AS

select *

from test

where  num1=@num1 and num2=@num2

 

set @out_num=@num1+@num2   output

 

2.存储过程的执行

//excute procedure

//直接提供参数,带输出

Use Test

Declare @out_num nvarchar(20) --必须声明输出参数

Exec myPro

'1231','121313',@out_num output

print @out_num

//间接提供参数,带输出

Use Test

Declare @num1 nvarchar(10)

Declare @num2 nvarchar(10)

Declare @out_num nvarchar(20)

Set @num1=''

Set @num2=''

Exec myPro @num1,@num2,@out_num output

print @out_num      --输出@out_num ,在消息里显示

 

 

3. 存储过程的调用

SqlConnection con =new SqlConnection(Constr);

SqlCommand cmd=new SqlCommand();

SqlDataAdapter sda=new SqlDataAdapter();

DataSet ds=new DataSet();

cmd.Connection=con;

cmd.CommandType=CommandType.StoredProcedure;

cmd.CommandText='procedure_name';

cmd.Parameters.Add("@parameter_name",SqlDbType.Int);  //存储过程输入参数,参数类型

cmd.Parameters["@parameter_name"].Value=myvalue;      //给输入参数赋值

//输出参数的设定

cmd.Parameters.Add("@out_name",SqlDbType.Int);

cmd.Parameters["@out_name"].Direction=ParameterDirection.Output;

cmd.ExcuteNonQuery();

sda.SelectCommand=cmd;

sda.Fill(ds);

 

 

 

(shining原创)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章