DataReader允许向前或者只读的访问数据记录,许多时候我们需要返回一个select查询的纪录数目。而DataReader本身却没有提供这个功能,我们能够运用一些技巧来迅速而又高效的得到数据,同时也能够得到所影响的记录数目。下面就是我们怎样来实现这个目 的:
我们用Command对象来绑定多个查询语句,然后我们通过ExecuteReader()来执行它。它将返回多个查询记录集,我们可以通过DataReader的NextResult()方法来遍历所有的记录集,然后把结果绑定到DataGrid
Dim cnn As New SqlConnection(Global.GetConnectionString)
Dim cmd As New SqlCommand()
Dim dr As SqlDataReader
cnn.Open()
cmd.CommandText = "select count(*) from employees;
select * from employees"
cmd.Connection = cnn
dr = cmd.ExecuteReader
dr.Read()
Label1.Text = dr.GetValue(0)
dr.NextResult()
DataGrid1.DataSource = dr
DataGrid1.DataBind()
当然了上面的这种方法还是有欠缺的,我们总不能为了取得一个记录集的数量而多写一条相关的SQL吧,因此我们可以通过变量来进行记录,这个变量可以在遍历每个结果集的时候通过循环来递增。当然你也可以得到多个结果集的每个结果集的记录数目。
int CountResult = 0;
while (myReader.Read()){
//write your sentece
CountResult = CountResult + 1;
}
int CountResult = 0;
myReader.NextResult();
RecordCount = 0;
while (myReader.Read())
{
//Write logic to process data for the second result.
RecordCount = RecordCount + 1;
}
MessageBox.Show("Authors from California:" + RecordCount.ToString());
}
这样我们就可以得到多个查询的相关记录数了,应当说还是相当有用的。用惯了ADO的朋友们,是否是可以一试了!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步