C#知识|通过ADO.NET实现应用程序对数据库的查询操作。
哈喽,你好啊,我是雷工!
前边学习了通过ADO.NET实现C#应用程序对数据库的增、删、改操作。
接下来接着学习查询操作,以下为学习笔记。
查询返回有两种类型,一种是单行单列的单一结果,一种是结果集,首先了解查询结果是单行单列结果的写法。
01 查询返回单一结果
以前方的账号表为例,查询返回账号总数。
账号表内容如下:
其中代码步骤和之前的增、删、改一样,还是分为5步;
不同的是SQL语句不同,此处SQL语句替换为:
select Count(*)as 账号总数 from Account
第4步的操作改为查询操作,方法为:
ExecuteScalar()
该方法,一般执行的都是查询,但是有时候也可以同时执行insert、update、delete操作。
C#中查询代码如下:
//引入需要的命名空间
using System.Data.SqlClient;
using System.Data;
namespace LeiGongNotes2
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("欢迎大家关注【雷工笔记】!");
Console.WriteLine("--------------------------");
ExecuteSingleResult();
Console.ReadLine();
}
//执行结果是单一结果的查询
static void ExecuteSingleResult()
{
//[1]、创建数据库连接对象
string connString = "Server=.;DataBase=LGAccountManagentDB;Uid=sa;Pwd=admin@123";
SqlConnection conn = new SqlConnection(connString);
//定义SQL语句
string sql = "select Count(*)as 账号总数 from Account";
//[2]、创建Command对象
SqlCommand cmd = new SqlCommand(sql, conn);
//[3]、打开数据库连接
conn.Open();
//[4]、执行查询操作
object result = cmd.ExecuteScalar();
Console.WriteLine("执行T-SQL查询语句账号总数为:" + result);
//[5]、关闭连接
conn.Close();
}
}
}
运行结果为:
02 查询返回结果集
还操作账号表,查询该表中序号小于10008的数据集合,
SQL查询语句为:
select AccountName,AccountContent,originality from Account where AccountId<10008
在SQLServer数据库中查询结果为:
在C#中查询代码写法:
//引入需要的命名空间
using System.Data.SqlClient;
using System.Data;
namespace LeiGongNotes2
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("欢迎大家关注【雷工笔记】!");
Console.WriteLine("--------------------------");
ExecuteReader();
Console.ReadLine();
}
//执行结果是结果集的查询
static void ExecuteReader()
{
//[1]、创建数据库连接对象
string connString = "Server=.;DataBase=LGAccountManagentDB;Uid=sa;Pwd=admin@123";
SqlConnection conn = new SqlConnection(connString);
//定义SQL语句
string sql = "select AccountName,AccountContent,originality from Account where AccountId<10008";
//[2]、创建Command对象
SqlCommand cmd = new SqlCommand(sql, conn);
//[3]、打开数据库连接
conn.Open();
//[4]、执行查询操作
SqlDataReader reader = cmd.ExecuteReader();
//判断是否查询结果,来决定是否继续读取数据
while(reader.Read())
{
Console.WriteLine(#34;{reader["AccountName"]}\t{reader["AccountContent"]}\t{reader["originality"]}");
}
reader.Close();//关闭读取器对象(必须有该步骤)
//[5]、关闭连接
conn.Close();
}
}
}
C#代码查询结果:
其中需要注意的是,读取完数据,读取器reader需要关闭,不然在后续会出错,显示被占用。
03 后记
想前边的增删改,以及本篇的查询,基本5步中除了SQL语句不通其他很多都是重复代码,
在实际开发中,遇到两次及以上代码存在重复时,一味使用复制粘贴是比较low的方法。
这时候就要考虑代码的复用,如何将重复的部分提炼出来是接下来要学习的,
有感兴趣的小伙伴,可以点赞+关注+在看,我们一起学习进步。