SqlDataAdapter的Fill(dataSet,startRecord,maxRecords,tableName)方法能否得到这次查询的总条数 startRecord,maxRecords得到了 得不到记录数的?要不在SQL里 增加字段 select ..... count(字段) as icount .... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 下面的示例使用派生类 OleDbDataAdapter,利用 categories 表中从第 10 行开始的 15 行数据来填充 DataSet。此示例假定您已经创建了一个 OleDbDataAdapter 和一个 DataSet。 注意 此示例显示如何使用 Fill 的一个重载版本。有关其他可用示例,请参阅单独的重载主题。public void GetMyRecords() { // ... // create myDataSet and myDataAdapter // ... myDataAdapter.Fill(myDataSet,9,15,"Categories");} 呵呵,我用的Sql语句是根据一定条件动态产生的,我只需调用一个接口就可以得到,你说的倒是一个方法,不过在我这里不是很容易用,谢谢。也许你还不明白这个Fill重载的意义,startRecord,maxRecords是自己定义的 你查看dataset里面的记录条数就晓得了三! int aa=SqlDataAdapter的Fill(dataSet,startRecord,maxRecords,tableName);不过提醒你一下,你这么在性能上没有任何意义,比如数据库里有100条记录,你只取1-10条,按照你的写法SqlDataAdapter是先全部取出100条记录,然后删除11-100条记录. To:gshope(北京.Net)这样的方式都显得不怎么好,有没有更简单有效的方式,这样的话要在数据层处理的多一点,并且有一个疑问,如果去得是第n页,前(n-1)+pageSize的被Remove掉以后row[0]指向的是那一行?总不是一个妥当的方法To:Jinniu(金牛), bitsbird(一瓢.net):您没有明白我的意思,请仔细看看我想做什么,谢谢 row[0]是第n页的第一行.建议你还是分两次吧,一次是在sql里运行count(*),用SqlDataReader取值,效率应该不错的. SqlConnection cn = new SqlConnection("server=localhost;uid=sa;pwd=sa;database=pubs");SqlDataAdapter ad = new SqlDataAdapter( _"select * from authors;select count(*) from authors;",cn); //请注意这一句!取得的结果集将生成两个表//前面的SQL语句是第一个表的内容//后面的SQL语句是第二个表的内容,即总记录数DataSet rs = new DataSet();string tablename = "authors";ad.Fill(rs,0,19,tablename); //这里是按你的意思取得结果集this.textBox1.Text = rs.Tables[1].Rows[0][0].ToString(); //这里的Tables[1]的首个内容就是你要的总的查询结果个数。....//然后把rs.Tables[0]的内容绑定到你需要的控件上就行记得给分哦! 求解一句反射代码 一个棘手小问题求助!! 编辑产品信息,为什么我指定一条编辑,却把数据库所有记录都编辑了? 如何读多节点的XML。 zebra打印机用FNTHEX32.dll组件打印中文,文字下半部会截断 我現在在已經辭職了可是還未找到工作,好慘呀!散分 如何进行datagridview 排序.自定义排序 串口打开失败 编译通不过,请各们高手指点一下。 二维码打印求救。。。100分 C#如何直接写字符串的内存? 急求【ADO.NET高级编程】一书的CSharp源码!
注意 此示例显示如何使用 Fill 的一个重载版本。有关其他可用示例,请参阅单独的重载主题。public void GetMyRecords() {
// ...
// create myDataSet and myDataAdapter
// ...
myDataAdapter.Fill(myDataSet,9,15,"Categories");
}
不过提醒你一下,你这么在性能上没有任何意义,比如数据库里有100条记录,你只取1-10条,按照你的写法SqlDataAdapter是先全部取出100条记录,然后删除11-100条记录.
这样的方式都显得不怎么好,有没有更简单有效的方式,这样的话要在数据层处理的多一点,
并且有一个疑问,如果去得是第n页,前(n-1)+pageSize的被Remove掉以后row[0]指向的是那一行?总不是一个妥当的方法
To:Jinniu(金牛), bitsbird(一瓢.net):
您没有明白我的意思,请仔细看看我想做什么,谢谢
建议你还是分两次吧,一次是在sql里运行count(*),用SqlDataReader取值,效率应该不错的.
SqlDataAdapter ad = new SqlDataAdapter( _
"select * from authors;select count(*) from authors;",cn);
//请注意这一句!取得的结果集将生成两个表
//前面的SQL语句是第一个表的内容
//后面的SQL语句是第二个表的内容,即总记录数
DataSet rs = new DataSet();
string tablename = "authors";ad.Fill(rs,0,19,tablename); //这里是按你的意思取得结果集
this.textBox1.Text = rs.Tables[1].Rows[0][0].ToString();
//这里的Tables[1]的首个内容就是你要的总的查询结果个数。....
//然后把rs.Tables[0]的内容绑定到你需要的控件上就行记得给分哦!