ASP.NET中调用存储历程[网站编程]
本文“ASP.NET中调用存储历程[网站编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
用ASP.NET与SQL SERVER但是缘份最好了,稍大的程序普通第一先考虑的是SQLSERVER,只是一些很考虑经济的才利用ACCESS等了.用SQL SERVER,为了使数据库的效率更好,普通城市才取存储历程,因存储历程履行速度快,并且可以实现一些高级的查询等功效.比方传入一些数据参数,但履行的SQL历程大概差别等.
下面就来个例子,成立一新的角色,要求角色的名字不能反复,以下是一存储历程.
CREATE PROCEDURE sp_AccountRole_Create@CategoryID int,
@RoleName nvarchar(10),
@Description nvarchar(50),
@RoleID int output
AS
DECLARE @Count int
-- 查找能否有相同名称的记录
SELECT @Count = Count(RoleID) FROM Account_Role WHERE
RoleName = @RoleName
IF @Count = 0
INSERT INTO Account_Role
(CategoryID, RoleName, Description) valueS
(@CategoryID, @RoleName, @Description)
SET @RoleID = @@IDENTITY
RETURN 1GO
履行存储历程的C#历程:
SqlConnection DbConnection = new SqlConnection(mConnectionString);
SqlCommand command = new SqlCommand( "sp_AccountRole_Create", DbConnection );
DbConnection.Open(connectString);
// 废置SqlCommand的属性为存储历程command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("@CategoryID", SqlDbType.Int, 4);
command.Parameters.Add("@RoleName", SqlDbType.NVarChar, 10);
command.Parameters.Add("@Description", SqlDbType.NVarChar, 50);
command.Parameters.Add("@RoleID", SqlDbType.Int, 4);
// 返回值command.Parameters.Add("Returnvalue",
SqlDbType.Int,
4,
// Size
ParameterDirection.Returnvalue,
false,
// is nullable
0,
// byte precision
0,
// byte scale
string.Empty,
DataRowVersion.Default,
null );
command.parameters["@CategoryID"].value = permission.CategoryID;
command.parameters["@RoleName"].value = permission.PermissionName;
command.parameters["@Description"].value = permission.Description;
// 可以返回新的ID值command.parameters["@RoleID"].Direction = ParameterDirection.Output;
int rowsAffected = command.ExecuteNonQuery();
int result = command.parameters["Returnvalue"].value;int newID = command.parameters["@RoleID"].value;
功效挺强的吧,可以得到三个值,辨别是行影响值,存储历程返回值,新的ID值.
以上是“ASP.NET中调用存储历程[网站编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |