熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> ASP編程 >> 正文

ASP.NET中如何調用存儲過程

2013-11-15 12:51:06  來源: ASP編程 

  用ASPNET與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 command = new SqlCommand( sp_AccountRole_Create DbConnection );

  DbConnectionOpen(connectString);

  // 廢置SqlCommand的屬性為存儲過程commandCommandType = CommandTypeStoredProcedure;

  commandParametersAdd(@CategoryID SqlDbTypeInt );

  commandParametersAdd(@RoleName SqlDbTypeNVarChar );

  commandParametersAdd(@Description SqlDbTypeNVarChar );

  commandParametersAdd(@RoleID SqlDbTypeInt );

  // 返回值commandParametersAdd(Returnvalue

  SqlDbTypeInt

  

  // Size

  ParameterDirectionReturnvalue

  false

  // is nullable

  

  // byte precision

  

  // byte scale

  stringEmpty

  DataRowVersionDefault

  null );

  commandparameters[@CategoryID]value = permissionCategoryID;

  commandparameters[@RoleName]value = permissionPermissionName;

  commandparameters[@Description]value = permissionDescription;

  // 可以返回新的ID值commandparameters[@RoleID]Direction = ParameterDirectionOutput;

  int rowsAffected = commandExecuteNonQuery();

  int result = commandparameters[Returnvalue]value;int newID = commandparameters[@RoleID]value;

  功能挺強的吧可以得到三個值分別是行影響值存儲過程返回值新的ID值


From:http://tw.wingwit.com/Article/program/ASP/201311/21750.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.