SqlDataAdapter 类:http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqldataadapter.aspx
static void Main(string[] args)
        {
            DataSet dataset = new DataSet();
            string str = "server = '(local)';database=Person;integrated security = true";
            string queryString = "SELECT 姓名,年龄 FROM 客户表";           
            using (SqlConnection con = new SqlConnection(str))
            {
                SqlDataAdapter adapter = new SqlDataAdapter();
                adapter.SelectCommand = new SqlCommand(queryString, con);

                adapter.Fill(dataset);
            }     
        }上面红色部分换成构造函数SqlDataAdapter adapter = new SqlDataAdapter(queryString, con),
不要adapter.SelectCommand = new SqlCommand(queryString, con)这句,其结果好像是一样的。
请问,这是为什么吗?
SelectCommand 属性到底有啥用?

解决方案 »

  1.   

    还是举个简单的例子吧只不过是构造方法重载了而已,根据参数来调用不同的重载
    因此下面的 是相同,只不过是前者先实例化,然后给属性赋值,后者,直接在构造函数里面赋值,效果一样 
    Test test=new Test();
    test.name="xiaowang";
    test.age=12;
    等价于
    Test test=new Test("xiaowang",12);public class Test
    {
       //姓名,性别  
        public string name;  
        public int age; 
        public Test()
        {}
        public Test(string name,int age)
        {
            this.name=name;
            this.age=age;
        }}
      

  2.   

    SqlDataAdapter adapter = new SqlDataAdapter(queryString, con),构造函数里已包含
    adapter.SelectCommand = new SqlCommand(queryString, con)这句了,所以不用再写了