sql调用存储过程exec ASP.NET中如何调用存储过程
ASP.NET中如何调用存储过程
用ASP NET与SQL SERVER可是缘份最好了 稍大的程序一般第一先考虑的是SQLSERVER 只是一些很考虑经济的才使用ACCESS等了 用SQL SERVER 为了使数据库的效率更好 一般都会才取存储过程 因存储过程执行速度快 并且可以实现一些高级的查询等功能 比如传入一些数据参数 但执行的SQL过程可能不同等
下面就来个例子 建立一新的角色 要求角色的名字不能重复 以下是一存储过程
CREATE PROCEDURE sp_AccountRole_Create@CategoryID int
@RoleName nvarchar( )

@Description nvarchar( )
@RoleID int output
AS
DECLARE @Count int
查找是否有相同名称的记录
SELECT @Count = Count(RoleID) FROM Account_Role WHERE
RoleName = @RoleName
IF @Count =
INSERT INTO Account_Role
(CategoryID RoleName Description) valueS
(@CategoryID @RoleName @Description)
SET @RoleID = @@IDENTITY
RETURN GO
执行存储过程的C#过程
SqlConnection DbConnection = new SqlConnection(mConnectionString);
SqlCommand mand = new SqlCommand( sp_AccountRole_Create DbConnection );
DbConnection Open(connectString);
// 废置SqlCommand的属性为存储过程mand CommandType = CommandType StoredProcedure;
mand Parameters Add( @CategoryID SqlDbType Int );
mand Parameters Add( @RoleName SqlDbType NVarChar );
mand Parameters Add( @Description SqlDbType NVarChar );
mand Parameters Add( @RoleID SqlDbType Int );
// 返回值mand Parameters Add( Returnvalue
SqlDbType Int
// Size
ParameterDirection Returnvalue
false
// is nullable
// byte precision
// byte scale
string Empty
DataRowVersion Default
null );
mand parameters[ @CategoryID ] value = permission CategoryID;
mand parameters[ @RoleName ] value = permission PermissionName;
mand parameters[ @Description ] value = permission Description;
// 可以返回新的ID值mand parameters[ @RoleID ] Direction = ParameterDirection Output;
int rowsAffected = mand ExecuteNonQuery();
int result = mand parameters[ Returnvalue ] value;int newID = mand parameters[ @RoleID ] value;
lishixinzhi/Article/program/ASP/201311/21750