ASP.NET는 어떻게 catch 저장 과정 중 던진 이상 정보를 저장합니까

12554 단어 asp.net

자료 라이브러리를 수정할 때 우리는 입력한 자료가 비어 있을 수 없고 자료가 이미 존재하거나 다른 표의 자료와 관련되어 삭제할 수 없다는 판정을 해야 한다.
입력한 자료는 비워둘 수 없다. 이런 것들은 모두 논리층에 의해 직접 처리된다. 자료가 이미 존재하고 관련이 있다. 이 부분은 데이터층에 집행하도록 추천하지만 어떻게 제시 정보를 되돌려 사용자에게 제시합니까?catch는 좋은 선택이야!
 
자료를 추가할 때'Sql = Insert into [table Name]values(....)와 유사하지 마십시오."이런 처리는 저장 프로세스를 직접 호출하면 된다. 저장 프로세스의 이름이 [test prc]라고 가정하면 된다.
그러면 코드는 다음과 같습니다.
 1  CREATE PROCEDURE [dbo].[test_prc](

 2    @formNo nvarchar(20),  --  

 3    @formName nvarchar(10) --  

 4  )

 5  AS 

 6  BEGIN

 7    declare

 8    

 9      @Error_Msg nvarchar(200)

10    

11    --       

12    IF ISNULL(@formNo,'')='' or ISNULL(@formName,'')='' 

13    BEGIN

14      set @Error_Msg = ''

15      RAISERROR(@Error_Msg,16,1) WITH NOWAIT

16      return 1

17    END

18    

19    --          

20    IF exists (select 1 from [tableName] where formNo=@formNo and formName=@formName)

21    BEGIN

22      set @Error_Msg = '  '+@formNo+',  '+@formName+'   ,     '

23      RAISERROR(@Error_Msg,16,1) WITH NOWAIT

24      return 1

25    END

26      

27    

28    --  

29    INSERT INTO [tableName]

30             ([formNo]

31             ,[formName]

32             )

33       VALUES

34             (@formNo

35             ,@formName

36             )

37  END      

상기 코드가 생기면 프로그램에서try를 사용합니다.catch는 다음과 같은 예외 정보를 캡처합니다.
 1         #region     

 2         /// <summary>

 3         ///     

 4         /// </summary>

 5         /// <param name="formNo">  </param>

 6         /// <param name="formName">  </param>

 7         /// <returns></returns>

 8         public bool Do_Process_Add_Info(string formNo, string formName)

 9         {

10             bool result = true;

11             SqlParameter[] oSqlParameter =

12                   {                                       

13                      new SqlParameter("@formNo",SqlDbType.NVarChar,20) ,

14                      new SqlParameter("@formName",SqlDbType.NVarChar,10) 

15                     };

16             try

17             {

18                 //  

19                 oSqlParameter[0].Value = formNo;

20                 oSqlParameter[1].Value = formName;

21 

22                 sqlHelper.SP_ExecuteNonQuery("test_prc", oSqlParameter); //sqlHelper               !

23             }

24             catch (Exception err)

25             {

26                 result = false;

27                 System.Windows.Forms.MessageBox.Show(err.Message);

28                 //        

29                 //Response.Write(err.Message);

30             }

31             return result;

32         }

자, 이렇게 해서 이 Do 만 호출하면Process_Add_Info(string form No,string form Name) 방법만 있으면 됩니다. 코드 논리는 수정할 필요가 없습니다. 모든 힌트가 있을 것입니다. 허허.촉발기 위에서 이렇게 할 수 있을지 모르겠군, 허허.
 

좋은 웹페이지 즐겨찾기