1、关于类:
public class product:dataset
{
   ...
   public productdata()
   {
      Builddatatbles();
   }
}
如上productdata函数中就只有一个Builddatatbles();为什么不直接写在class product中,而需要单独出来构造一个函数?
即为什么不可以简单写为:
public class product:dataset
{
     .....    
     Builddatatbles();
   
}
许多这样同类似的类构造,相不明白,请大侠开个窍。2、.Net数据集中经常出现
cmd.commandType=commandType.Text
后面的commandType.Text不就是cmd自身的commandType属性吗?是存储过程就是存储过程,是SQL就是SQL,为什么还需要赋值?

解决方案 »

  1.   

    我的一点看法,不知道是否正确啊!
    1.构造函数是在类实例化的时候即执行,赋给类里面的变量以初值,而这些变量一般是该类里面的方法所要用到的,可以方便后面的调用。
    如果你的那个方法单独写出来的话,在类实例化之后还要在调用那个方法一次。。2.这一个在我看来不是必须要写的。。
    SqlCommand cmd=new SqlCommand("select * from tb",connection);
    cmd.CommandType=CommandType.Text;
    这个的话后一句可以不写。。
    而如果是存储过程的话就必须写了~~~
    SqlCommand cmd=new SqlCommand("InsertPerson",connection);
    cmd.CommandType=CommandType.Procedure;基础知识不怎么牢靠,有错误还请见谅!~~
      

  2.   

    1,之所以是写在构造函数中,是因为这里的代码是在实例化(用new关键字)时自动执行的,比如:
    product myproduct=new product();
    实际上这句话完了你构造函数也就被执行了。当然你可以不写在构造函数中,但是必须手动去调用你需要的方法:
    product myproduct=new product();
    myproduct.Builddatatbles();
    具体写哪里,看自己的需要把,一般构造函数是用于初始化对象的成员变量。
      

  3.   


    public product() 

        Builddatatbles(); 
    } 这个才是构造函数,写在这里是为了实例化的时候自动调用Builddatatbles方法,不用你再去显示调用了,如同楼上学的,一般做初始化成员变量用。
      

  4.   

    cmd.commandType=commandType.Text 
    解释类型的 如果是存储过程就声明它是存储过程cmd.CommandType=CommandType.Procedure; 前面一句.net执行的是一般的sql后面的一个是告诉.net执行的是一个存储过程
      

  5.   

    二楼说的很对
    cmd.commandType默认为commandType.Text所以当cmd.commandtext为sql语句是无需指定,但是执行存储过程时就要制定cmd.CommandType=CommandType.Procedure;
      

  6.   

    问题果然够初学两个问题都问得有点...说不出来的感觉问题1, public productdata() 
      { 
          Builddatatbles(); 
      } 这没什么,只是在productdata方法中调用了Builddatatbles方法,至于为什么不写在类中,这是业务逻辑问题,可能说得比较抽象问题2,我都不知道该怎么回答你,这就是一个普通的属性赋值,属性的类型是枚举,没什么其它的