sqlConnection = new SqlConnection();
        sqlConnection.ConnectionString = ConfigurationSettings.AppSettings["connectionStrsearch"];
        sqlConnection.Open();
        SqlCommand sqlCommand = new SqlCommand("pageSplit_Proc", sqlConnection);
        sqlCommand.CommandType = CommandType.StoredProcedure;
        sqlCommand.Parameters.AddWithValue("@aTableName", DbType.String).Value = "gs_zhaopin";
        sqlCommand.Parameters.AddWithValue("@aGetFields", DbType.String).Value = "*";
        sqlCommand.Parameters.AddWithValue("@anOrderField", DbType.String).Value = "datetime";
        sqlCommand.Parameters.AddWithValue("@aPageSize", DbType.Int32).Value = 10;
        sqlCommand.Parameters.AddWithValue("@aPageIndex", DbType.Int32).Value = page;
        sqlCommand.Parameters.AddWithValue("@anIsCount", DbType.Boolean).Value = 1;
        sqlCommand.Parameters.AddWithValue("@anIsDESC", DbType.Boolean).Value = 1;
        sqlCommand.Parameters.AddWithValue("@aQuery", DbType.String).Value = "cdetail like '%" + txt + "%'";
        sqlCommand.Parameters.AddWithValue("@aCount", DbType.Int32).Value = 0;
        sqlCommand.Parameters["@aCount"].Direction = ParameterDirection.Output;        
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);
        //sqlDataAdapter.SelectCommand = sqlCommand;
        DataSet ds = new DataSet();
        sqlDataAdapter.Fill(ds);
        DataTable dt = ds.Tables[0];
        foreach (DataRow dr in dt.Rows)
        {
}这样返回的ItemArray 是1,正确的应该是返回一行里面所有的列的维数..如果表有15列,返回的ItemArray就是15,为什么会只返回这个?

解决方案 »

  1.   

     sqlConnection = new SqlConnection(); 
            sqlConnection.ConnectionString = ConfigurationSettings.AppSettings["connectionStrsearch"]; 
            sqlConnection.Open(); 
            SqlCommand sqlCommand = new SqlCommand("pageSplit_Proc", sqlConnection); 
            sqlCommand.CommandType = CommandType.StoredProcedure; 
            sqlCommand.Parameters.AddWithValue("@aTableName", DbType.String).Value = "gs_zhaopin"; 
            sqlCommand.Parameters.AddWithValue("@aGetFields", DbType.String).Value = "*"; 
            sqlCommand.Parameters.AddWithValue("@anOrderField", DbType.String).Value = "datetime"; 
            sqlCommand.Parameters.AddWithValue("@aPageSize", DbType.Int32).Value = 10; 
            sqlCommand.Parameters.AddWithValue("@aPageIndex", DbType.Int32).Value = page; 
            sqlCommand.Parameters.AddWithValue("@anIsCount", DbType.Boolean).Value = 1; 
            sqlCommand.Parameters.AddWithValue("@anIsDESC", DbType.Boolean).Value = 1; 
            sqlCommand.Parameters.AddWithValue("@aQuery", DbType.String).Value = "cdetail like '%" + txt + "%'"; 
            sqlCommand.Parameters.AddWithValue("@aCount", DbType.Int32).Value = 0; 
            sqlCommand.Parameters["@aCount"].Direction = ParameterDirection.Output;         
    SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand); 
            //sqlDataAdapter.SelectCommand = sqlCommand; 
            DataSet ds = new DataSet(); 
            sqlDataAdapter.Fill(ds); 
            DataTable dt = ds.Tables[0]; 
            foreach (DataRow dr in dt.Rows) 
            { 
    } 你的存储过程返回的是什么呢
    按照你这样的写法应该是返回取得的数量把..所以当然是1
      

  2.   

    谢谢你的回复..
    sqlCommand.Parameters["@aCount"].Direction = ParameterDirection.Output; 这个是返回的其中一个..如果一行有15列..不加这个@aCount则返回的ItemArry就是15..加了应该显示的就是16了@aCount是存储过程里面的其中一个sql语句返回的结果应该返回的是一行所有的数据加上@aCount