问题描述
调试错误显示:System.Data.OleDb.OleDbException:ORDERBY子句语法错误错误行:da.Fill(ds,starnum,pagesize,"content");PS:da为OleDbDataAdapterda=newOleDbDataAdapter();ds为DataSetds=newDataSet();starnum为从开始查找的页数intstarnum=(pagenum-1)*pagesize;pagenum是前面开始用数据绑定定义的。就是这个函数databind(stringsql,stringcountsql,intpagenum),而在调用这个函数的时候赋为pagenum=1。pagesize是一页显示的内容数。个人看法:用逐程序调,可以看到starnum的值在施行intstarnum=(pagenum-1)*pagesize;语句后为0,因此应该不能找到开始查找的页数,但在后面+1,即intstarnum=(pagenum-1)*pagesize+1;但还是相同的错误点。而问人,有的说是数据库那边定义有错误。就是我写数据库用Access做了表,有个列名叫data表示时间,说和数据(data)一样,要改。而我改后还是错误,而他说他以前这样改对,我无语,RP问题。而现在我很不明白的是,在da.Fill(ds,starnum,pagesize,"content");里面的那4个值分别是用来做什么,一般DataAdapter.Fill()方法里面都是2个值,而现在是4个,我蒙了,迷糊了,倒了...希望大虾们能帮帮小弟,看是什么问题。重点是要理解,为什么那里面为是4个值,不理解。谢谢大家!
解决方案
解决方案二:
你看一你的dada.Fill(总数5)里面的5,表示有5种重载版本。也就是说里面的参数可以有五种。而你的那个写法:da里面有四个参数,是OleDbDataAdapter()的第五个重载版本。
解决方案三:
要说是OleDbDataAdapter()的第五个重载版本,那里面就要有5种参数,而要是像我那样写4个参数,又有什么意义呢!实在看不明白Fill()方法调用那4个参数的意义,希望能更进一步的说明一下。谢谢sunlovesea的回复。