版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。
需要北风数据库的请留言自己的信箱。
前面第19.4.1节学习了返回多条数据的查询是采用OleDbCommand的ExecuteReader方法。如果带聚合函数的SQL语句返回数据只有一条,那么建议采用OleDbCommand的ExecuteScalar方法,
【例 19.12】【项目:code19-012】获得带函数的SQL语句的查询结果。
……代码略
private void button1_Click(object sender, EventArgs e)
{
//新建OleDbCommand对象实例
OleDbCommand command = new OleDbCommand();
//要执行的SQL语句
command.CommandText = "SELECT count(产品名称) as 产品品类总数 from 产品";
//设置OleDbCommand的数据连接为OleDbConnection
command.Connection = conn;
int productCount;
//执行ExecuteScalar,返回第一个数据
productCount = (int)command.ExecuteScalar();
textBox1.Text = "产品品类总数:" + productCount;
}
private void button2_Click(object sender, EventArgs e)
{
//新建OleDbCommand对象实例
OleDbCommand command = new OleDbCommand();
//要执行的SQL查询
command.CommandText = "SELECT 供应商ID,count(供应商ID) as 供货产品种类 from 产品 group by 供应商ID";
//设置OleDbCommand的数据连接为OleDbConnection
command.Connection = conn;
//声明OleDbDataReader对象
OleDbDataReader odReader;
//通过OleDbCommand的ExecuteReader方法获得OleDbDataReader对象实例。
odReader = command.ExecuteReader(CommandBehavior.SingleResult);
//保存查询获得的数据
string queryString = "";
//如果OleDbDataReader中包含数据
if (odReader.HasRows)
//循环读取每一行数据,直到Read方法返回False
while (odReader.Read())
//这里获得每一行第一个和第二个字段名称及其对应的数据
queryString += odReader.GetName(0) + ":" + odReader.GetInt32(0) + " " + odReader.GetName(1) + ":" + odReader.GetInt32(1) + "\r\n";
//关闭数据读取器
odReader.Close();
//显示查询获得的数据
textBox1.Text = queryString;
}
运行结果如下图所示:
图19-29 供应商供货产品种类的分组查询结果
学习更多vb.net知识,请参看vb.net 教程 目录
学习更多C#知识,请参看C#教程 目录