新买了本书在看,有些问题不能理解,麻烦大家帮解答一下- -1.catch(Exception ex){throw new Exception(ex.Message,ex);}
问:将捕捉到的错误再次抛出有什么意义?2.存储过程应该是放在数据库中的吧,那如何对已经上传到服务器上的数据库进行存储过程的添加与修改?3.(1)private static void lg1(params SqlParameter[] prams){}
  (2)public static void lg2(out SqlDataReader dr)
  (3)public static void lg3(ref Dataset ds)
问:以上3个过程的参数类型前都有修饰(暂且这么说吧- -),那些params,out,ref各代表什么?除此以外还有其他的修饰么?什么情况下使用?4.cmd.Parameters.Add(new SqlParameter(returnValueString,SqlDbType.Int,4,ParameterDirection.ReturnValue,false,0,0,string.Empty,DataRowVersion.Default,null))
问:以上是添加一个返回值参数,new SqlParameter中我知道前面几个参数是:参数名,参数类型,参数大小,参数方向.但是接下来的几个参数是什么意思就不清楚了,麻烦大家给说下,什么时候能用到?5.cmd.ExecuteReader(CommandBehavior.CloseConnection)
问:之前看的几本书里SqlCommand的几种方法都没有使用参数,也没有讲解,哪里能够详细学到这方面的知识?

解决方案 »

  1.   

    2 直接对服务器上的数据库进行管理,到服务器的机子上打开查询分析器 贴上存储过程代码 执行就可以了3 out是指输出参数 如果只有一个输出参数 那和方法的返回值差不多,但一个方法可以有多个输出参数
      ref  是将参数按引用来传递 
      params  是定义可变参数 也就是说 SqlParameter[] prams 定义的个数不固定
      

  2.   

    1.catch(Exception ex){throw new Exception(ex.Message,ex);} 
    问:将捕捉到的错误再次抛出有什么意义?不捕获异常的话,程序会异常退出,没有友好的提示。
      

  3.   

    1.catch(Exception ex){throw new Exception(ex.Message,ex);} 
    问:将捕捉到的错误再次抛出有什么意义? 
    -------------------
    让上层调用者处理...一般都应该抛出到UI去处理...2.存储过程应该是放在数据库中的吧,那如何对已经上传到服务器上的数据库进行存储过程的添加与修改?
    -------------------
    用相应的DBA工具最简单,不嫌麻烦的话也可以写代码...后面的...去看MSDN吧...
      

  4.   

    这种不作处理全抛出没必要这样写,可以简化为...
    catch{ throw; }
      

  5.   


    params类型的参数搭配数组使用,实现一个不定长的数组参数 
    out类型的参数做为输出参数使用,用于一个方法返回多个值类型的变量,一般对值类型使用。 
    ref类型的参数是指在将一个变量做为一个参数传递给某个方法的时候,使用引用传递。 
      

  6.   

    在查询分析器执行存储过程
    SqlParameter 构造函数 (String, SqlDbType, Int32, ParameterDirection, Byte, Byte, String, DataRowVersion, Boolean, Object, String, String, String)
    初始化 SqlParameter 类的一个新实例,该类使用参数名、参数的类型、参数的长度、方向、精度、小数位数、源列名称、DataRowVersion 值之一、用于源列映射的布尔值、SqlParameter 的值、此 XML 实例的架构集合所在的数据库的名称、此 XML 实例的架构集合所在的关系架构以及此参数的架构集合的名称。