重复主键异常捕获
我想写一个添加方法 
 返回是1表示添加成功,如果是2表示有重复主健,如果是3表示其它问题导致的添加失败。   
 重复主键和问题导致的添加失败怎么区分开来呢?     
                                                 DataAccess.ExecutePorcedure( "pro_serviceInfo_insert ",   mypar); 
                                                 flag   =   true; 
                                     } 
                                     catch   (Exception   ex) 
                                     {   
                                                 Console.WriteLine(ex.Message); 
                                     } 
                                     return   flag;   
 如果是根据异常捕获在这个异常里面怎么处理呢??? 
 在线等。。。跪求 
------解决方案--------------------catch ( SqlException e ) 
 { 
        if (e.Number == 2601)  
        { 
            //这个是重复主键异常 
        } 
 }