要使用DataSet,为什么不用DataAdapter? 如果你使用Command取得DataReader,你还是需要一行一行的自己填充到DataSet中,实际上DataAdapter在内部可能也是使用了DataReader,所以建议使用DataAdpater.

解决方案 »

  1.   

    SqlDataAdapter调用存储过程方法如下:
            SqlConnection myConnection = new SqlConnection("server=(local)\\NetSDK;database=northwind;Trusted_Connection=yes");
            SqlDataAdapter myCommand = new SqlDataAdapter("Ten Most Expensive Products", myConnection);        myCommand.SelectCommand.CommandType = CommandType.StoredProcedure;        DataSet ds = new DataSet();
            myCommand.Fill(ds, "产品");        MyDataGrid.DataSource=ds.Tables["产品"].DefaultView;
            MyDataGrid.DataBind();
      

  2.   

    改动Cnapollo()
    SqlDataAdapter调用存储过程方法如下:
            SqlConnection myConnection = new SqlConnection("server=(local)\\NetSDK;database=northwind;Trusted_Connection=yes");
            SqlDataAdapter myCommand = new SqlDataAdapter("Ten Most Expensive Products", myConnection);
            myCommand.SelectCommand=new new System.Data.SqlClient.SqlCommand();
            myCommand.SelectCommand.Connection = this.sqlConn;
            myCommand.SelectCommand.CommandType = CommandType.StoredProcedure;
            myCommand.SelectCommand.CommandText = "[StoredProcedure_Name]";
            //如果带参数
    myCommand.SelectCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ID", System.Data.SqlDbType.VarChar, 50));
             myCommand.SelectCommand.Parameters["@Stock_ID"].Value="3";
            DataSet ds = new DataSet();
            myCommand.Fill(ds, "产品");        MyDataGrid.DataSource=ds.Tables["产品"].DefaultView;
            MyDataGrid.DataBind();
      

  3.   

    myCommand.SelectCommand.Parameters["@Stock_ID"].Value="3";
    改myCommand.SelectCommand.Parameters["@ID"].Value="3";