分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

ADO.NET笔记

发布时间:2023-09-06 01:34责任编辑:顾先生关键词:.NET

一、ADO.NET (Access Data Object, 数据访问对象)
???.NET操作数据库的一组类
???1. DataSet (数据集)
???2. .NET数据提供程序 (Data Provider)
???????2.1. Connection
???????2.2. Command
???????2.3. DataReader
???????2.4. DataAdapter


二、Connection (连接对象)
???1. 创建:
???????SqlConnection conn = new SqlConnection();
???????conn.ConnectionString = "连接字符串";
???????// 或:
???????SqlConnection conn = new SqlConnection(连接字符串);


???2. 打开连接:
???????conn.Open();

???????可能产生的异常:
???????2.1. 连接失败:地址不对,服务没开,没目标数据库
???????2.2. xx 登录失败:账号不对、权限不足
???????2.3. 不支持关键字 xxx:连接字符串错误


???3. 连接字符串:
???????3.1. 地址、数据库、账号、密码
???????3.2. Data Source=服务器地址; Initial Catalog=数据库名; User Id=账号; Password=密码
???????3.3. server=服务器地址; database=数据库名; uid=账号; pwd=密码


???4. 连接实例:
???????string connStr = "server=.;database=MySchool;uid=sa;pwd=sa";
???????SqlConnection conn = new SqlConnection(connStr);
???????conn.Open();
???????conn.Close();


三、Command (命令执行对象)
???1. 创建语法:
???????SqlCommand comm = new SqlCommand();
???????comm.CommandText = "SQL语句"; // 要执行什么SQL?
???????comm.Connection = conn; ?????????????// 在哪执行?
???????// 或简写为:
???????SqlCommand comm = new SqlCommand(sql, conn);


???2. 执行
???????2.1. ExecuteScalar()
???????2.2. ExecuteReader()
???????2.3. ExecuteNonQuery()


???3. comm.ExecuteScalar():
???????3.1. Command开始执行目标的SQL语句,并获取数据库返回的结果
???????3.2. 只获取结果中的首行首列
???????3.3. 适用情况:
???????????3.3.1. 聚合函数:count、sum、max、min、avg
???????????3.3.2. 根据条件查询某一列的值


四、示例:查询所有学生数量
???// 1. 创建连接并打开
???string connStr = "server=.;database=MySchool;uid=sa;pwd=sa";
???SqlConnection conn = new SqlConnection(connStr);
???conn.Open();

???// 2. 创建执行对象
???string sql = "select count(1) from Student";
???SqlCommand comm = new SqlCommand(sql, conn);

???// 3. 执行并返回结果
???int count = (int)comm.ExecuteScalar();
???// 或:
???int count = Convert.ToInt32(comm.ExecuteScalar());

???// 4. 关闭连接
???conn.Close();


五、示例:根据年级编号查询年级名称
???public string SelectGradeNameById(int gradeId)
???{
???????string name = null;

???????// SQL语句
???????string sql = string.Format("SELECT GradeName FROM Grade WHERE GradeId={0}", gradeId);
???????SqlConnection conn = new SqlConnection(connStr); ???// 1. 创建连接
???????SqlCommand comm = new SqlCommand(sql, conn); ???// 2. 创建执行对象
???????conn.Open(); ???????????????????????????????????????????????????????????????????// 3. 打开连接
???????name = comm.ExecuteScalar().ToString(); ?????????????????????// 4. 执行并获取结果
???????conn.Close(); ??????????????????????????????????????????????????????????????????// 5. 关闭连接

???????return name;
???}


六、示例:根据学生编号查询学生姓名
???public string SelectStudentNameByNo(string studentNo)
???{
???????string name = null;

???????//SQL语句
???????string sql = string.Format("SELECT StudentName FROM Student WHERE StudentNo=‘{0}‘", studentNo);

???????SqlConnection conn = new SqlConnection(connStr); ???// 1. 创建连接
???????SqlCommand comm = new SqlCommand(sql, conn); ???// 2. 创建执行对象
???????conn.Open(); ???????????????????????????????????????????????????????????????????// 3. 打开连接
???????name = comm.ExecuteScalar().ToString(); ????????????????????// 4. 执行并获取结果
???????conn.Close(); ??????????????????????????????????????????????????????????????????// 5. 关闭连接 ?

???????return name;
???}


七、SQL执行常见错误
???1. 不支持关键 xxx
???2. xxx 附近有语法错误
???????SQL语句错了
???3. 列名 xxx 无效
???????SQL语句错了
???4. Command需要一个已经打开的Connection
???????连接未打开


八、示例:管理员登录 (根据账号和密码,查询人数)
???public int AdminLogin(string username, string password)
???{
???????int count = -1;
???
???????// SQL语句
???????string sql = " SELECT COUNT(1) FROM Admin WHERE Username=‘{0}‘ AND Password=‘{1}‘ ";
???????sql = string.Format(sql, username, password);
???
???????SqlConnection conn = new SqlConnection(connStr); ???// 1. 创建连接
???????SqlCommand comm = new SqlCommand(sql, conn); ???// 2. 创建执行对象
???????conn.Open(); ???????????????????????????????????????????????????????????????????// 3. 打开连接
???????count = Convert.ToInt32(comm.ExecuteScalar()); ?????????// 4. 执行并获取结果
???????conn.Close(); ??????????????????????????????????????????????????????????????????// 5. 关闭连接
???
???????return count;
???}

ADO.NET笔记

原文地址:https://www.cnblogs.com/lecj2498/p/8185517.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved