举个简单例子,
比如要对一个数字N做比较复杂的运算,而且需要多次使用,那么建立函数get_N(number)
在每次需要这个结果的时候都可以调用函数来处理
比如 select get_N(n) from dual
而不需要每次都把整个计算过程都做一次。
存储过程主要是处理一些复杂的业务,比如一个生成订单的过程,我需要记录订单表,日志表,更新客户信息表,更新客户积分等等的 *** 作。
那可以把这些 *** 作都放在一个存储过程中实现。
每次生成订单,只需要通过程序调用一下存储过程就可以了。而不需要通过程序去多次链接数据库,每次执行对一个表的 *** 作。
(1)执行一个没有参数的存储过程的代码如下:SqlConnection
conn=new
SqlConnection(“connectionString”)
SqlDataAdapter
da
=
new
SqlDataAdapter()
da.selectCommand
=
new
SqlCommand()
da.selectCommand.Connection
=
conn
da.selectCommand.CommandText
=
"NameOfProcedure"
da.selectCommand.CommandType
=
CommandType.StoredProcedure
(2)执行一个有参数的存储过程的代码如下
SqlConnection
conn=new
SqlConnection(“connectionString”)
SqlDataAdapter
da
=
new
SqlDataAdapter()
da.selectCommand
=
new
SqlCommand()
da.selectCommand.Connection
=
conn
da.selectCommand.CommandText
=
"NameOfProcedure"
da.selectCommand.CommandType
=
CommandType.StoredProcedure
param
=
new
SqlParameter("@ParameterName",
SqlDbType.DateTime)
param.Direction
=
ParameterDirection.Input
param.Value
=
Convert.ToDateTime(inputdate)
da.selectCommand.Parameters.Add(param)
若需要添加输出参数:
param
=
new
SqlParameter("@ParameterName",
SqlDbType.DateTime)
param.Direction
=
ParameterDirection.Output
param.Value
=
Convert.ToDateTime(inputdate)
da.selectCommand.Parameters.Add(param)
若要获得参储过程的返回值:
param
=
new
SqlParameter("@ParameterName",
SqlDbType.DateTime)
param.Direction
=
ParameterDirection.ReturnValue
param.Value
=
Convert.ToDateTime(inputdate)
da.selectCommand.Parameters.Add(param)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)