AS.NETは格納プロセス(パラメータ付き、3つの戻り値)+@ReturnValueを呼び出します.

2962 ワード

http://blog.sina.com.cn/s/blog_707 a 4 cbf 010 ualx.
sp.netでは、簡単なストレージ方法を呼び出すと、強力な機能があります.保存プロセスをよく使うと、プログラムの性能が大幅に向上するだけでなく、開発効率も向上します.asp.netでは、簡単なストレージ方法を呼び出すと、強力な機能があります.保存プロセスをよく使うと、プログラムの性能が大幅に向上するだけでなく、開発効率も向上します.asp.netでは、簡単なストレージ方法を呼び出すと、強力な機能があります.保存プロセスをよく使うと、プログラムの性能が大幅に向上するだけでなく、開発効率も向上します.
単純呼び出し出力パラメータなしリターン値なしの格納手順
SqlConnection conn=new SqlConnection(“connectionString”);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = conn;
da.SelectCommand.CommandText = "NameOfProcedure(’para1’,’para2’,para3)";
da.SelectCommand.CommandType = CommandType.StoredProcedure;
ASP.NETとSQL SERVERを使うのは縁が一番いいです.ちょっと大きなプログラムは普通最初にSQL SERVERを考えます.経済を考慮して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 1
GO
       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);
//    
cmd.Parameters["@ReturnValue"].Direction = ParameterDirection.ReturnValue;//  ReturnValue           
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;//  RoleID     
////        ,         1、  、  2、  、3、    4、         
int rowsAffected = command.ExecuteNonQuery();//    
int result = command.parameters["Returnvalue"].value;//          ,                                                                 ,return 1(      )
 command.parameters["@RoleID"].value;//        ID 
        ,       ,       ,       ,  ID 。
       :    cmd.Parameters.Add(New SqlParamete("ReturnValue",SqlDbType.Int)).Direction = ParameterDirection.ReturnValue '      return  
 
         DBUtility  ProcCommander.cs