我写了一个类,这个类其中有一个方法是想调用指定多少条到多少条的数据但是报错
代码:
 public static DataTable ExecuteQuery(string query,int biginrow,int endrow)
    {
        string connectionString = System.Configuration.ConfigurationSettings.AppSettings["Str_sql"];
        SqlConnection connection = new SqlConnection(connectionString);
        connection.Open();        try
        {
            if((biginrow.ToString().Length != 0) || (endrow.ToString().Length != 0))
            {
                SqlDataAdapter adapter = new SqlDataAdapter(query, connection);
                DataSet ds = new DataSet();
                adapter.Fill(ds);                return ds.Tables[0];
            }
            else
            {
                
                SqlDataAdapter adapter = new SqlDataAdapter(query, connection);
                DataSet ds = new DataSet();
                adapter.Fill(ds,biginrow,endrow);  // 就是这些报错  beginrow 是从多少条开始,endrow 是查询多少条
                 return ds.Tables[0];
            }
        }
        finally
        {
            if (connection.State == ConnectionState.Open)
                connection.Close();
        }
    }“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------编译错误 
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误信息: CS1502: 与“System.Data.Common.DbDataAdapter.Fill(int, int, params System.Data.DataTable[])”最匹配的重载方法具有一些无效参数源错误: 行 42:                 SqlDataAdapter adapter = new SqlDataAdapter(query, connection);
行 43:                 DataSet ds = new DataSet();
行 44:                 adapter.Fill(ds,biginrow,endrow);
行 45: 
行 46:                  return ds.Tables[0];
 

解决方案 »

  1.   

    adapter.Fill(ds,biginrow,endrow);
    -->
    adapter.Fill(biginrow,endrow,ds);
    这样试下,参考MSDN,DbDataAdapter.Fill的重载方法
      

  2.   


            //str_sql = "select   top  64 Refurbish_subject from refurbish  order by Refurbish_Time desc";
            //SqlDataAdapter sdr_zxzs1 = new SqlDataAdapter(str_sql,con);
            //sdr_zxzs1.Fill(ds,0,16,"zxzs1");
            //rpt_zxzs1.DataSource = ds.Tables["zxzs1"].DefaultView;
            //rpt_zxzs1.DataBind();
            //rpt_zxzs1.Dispose();
            //sdr_zxzs1.Fill(ds,16,15, "zxzs2");
            //rpt_zxzs2.DataSource = ds.Tables["zxzs2"].DefaultView;
            //rpt_zxzs2.DataBind();
            //rpt_zxzs2.Dispose();
        
    为什么我以前 这样写就行。。
      

  3.   

    你上面那是4个参数的重载
    DbDataAdapter.Fill (DataSet, Int32, Int32, String) 3个参数的重载
    DbDataAdapter.Fill (Int32, Int32, DataTable[]) 
    这个是符合你的要求的参考MSDN
      

  4.   

    我想让tablename  也就是上面的第四个参数 为默认的怎么写
      

  5.   

    那就用一个全局变量或是ViewState保存这个默认值,然后第四个参数直接用这个变量就行了