什么是ado.net

使用.net技术操作数据库的一套类库。

命名空间

system.data:描述数据的命名空间
system.data.sqlclient:专门针对sqlserver的命名空间

四大类(不同数据库会有不同的前缀),四大模型

connection :用于连接数据库

command: 链接成功后用于操作数据库的命令

        1。 ExecuteNonQuery模型
1-1.执行非查询语句,返回受影响行数,如果执行的是非增、删、改操作返回-1
int ExecuteNonQuery()
例: string con=“数据库连接信息”;
sqlconnection conn=new sqlconnection(con);
string sql=“sql语句”;
sqlcommand cmd=new sqlcommand(sql,conn);
conn.Open();
int count=cmd.ExecuteNonQuery();//返回受影响的行数
conn.Dispose();
cmd.Dispose();//释放资源
例子2: string coonStr=@"链接信息";
string sql="sql语句";
using(SqlCoonection conn=new SqlCoonection(coonStr))
{
using(SqlCommand cmd=new SqlCommand(sql,conn))
{
conn.Open();
int count=cmd.ExecutrNonQuery();
}
}

ExecuteScalar模型

2、ExecuteScalar模型:返回查询的第一行第一列的结果。返回类型是object,用法和上一个类型相同。

連接池

保存連接對象的池子。用於存放數據庫連接對象。當conn.close()時,在一定時間內(比如100ms)講連接信息保存在連接池中。當再次打開相同的數據庫時,直接用池子中的鏈接對象,大大提高了與數據庫交互的效率。
例子: string connStr='鏈接信息';
Stopwatch sp=new Stopwatch();
sp.Start()//計時開始
for(int i=0;i<1000;i++)
{
SqlConnection conn=new SqlConnection(connStr);
conn.Open();
conn.Close();//有此項操作才是使用了連接池
}
sp.Stop();//計時結束
Console.Write(sp.Elapsed);//打印出花費的時間
禁用連接池:在鏈接的數據庫字符串後面加上pooling=false;
string connStr='鏈接信息';pooling=false;

简单处理注入漏洞攻击

注入漏洞:原本是一个数据,现在变成一个数据和一个条件(可能是永远为true的条件)
解决办法:1、限制其只允许是数据
string pwd=pwd.Replace("\'","\'\'");//数据库sql语句里要表示一个单引号的字符串,常常用连续2个单引号来表示一个单引号字符串。(次办法常用于asp时代)
2、参数化查询

如何使用参数化查询

1.将原来需要字符串拼接的值,用一个@引导的变量名代替
2.使用SqlParameter类型将参数变量与值绑定在一起
3.将Sqlparameter对象交给cmd对象的Parameter集合
例子:string uid="uid";
string pwd="pwd";
string coonStr=ConfigurationManager.ConnectionStrings["Sql"].ConnectionString;
string sql="select count(*) from 表名 where uid=@uid and pwd=@pwd;";
SqlParameter pUid=new SqlParameter("@uid",uid);
SqlParameter pPwd=new SqlParameter("@pwd",pwd);
int count;
using(SqlConnection conn=new Sqlconnection(coonStr))
{
using(SqlCommand cmd=new SqlCommand(sql,conn))
{
//将参数交给cmd、
cmd.Parameters.Add(pUid);
cmd.parameters.Add(pPwd);
conn.Open();
count=(int) cmd.ExecuteScalar();
}
}

ExecuteReader模型

执行数据库的查询操作时,返回查询结果,返回的数据类型是SqlDataReader类型
例子: string sql="sql语句";
string connStr="连接信息";
using(SqlConnection conn= new SqlConnection(connStr)){
using(SqlCommand cmd= new SqlCommand(sql,conn)){
conn.Open();
SqlDataReader reader=cmd.ExecuteReader();
using(reader){
while(reader.Read())//read表示索引跳到下一行
for(int i=0;i<reader.FieldCount;i++)
{
string data=reader[i].ToString();
Console.Write(data+",");
}
COnsole.WriteLine(); }
Console.ReadKey();
}
}

datareader:用于取数据

dataadapter:将数据库的数据转换成后台相对应的数据类型

例子; string coonStr="连接信息";
string sql ="sql语句";
DataSet ds=new DataSet();
using (SqlDataAdapter sda=new SqlDataAdapter(sql,coonStr))
{
sda.Fill(ds);//将数据写入ds中
}

连接数据库

1.数据库地址和实例名,数据库名,验证的凭证(用户名密码,本机数据库连接凭证)

server=ip或者机器名或.\实例名;database=数据库名;uid=sa;pwd=123;或integrated   security=true;//集成安全验证(windows身份验证)
例:string connstr=“server=.;database=master;uid=sa;pwd=123”;
sqlconnection conn=new sqlconnection(connstr);//连接数据库
conn.Open();//打开数据库

ado.net基础(一)的更多相关文章

  1. ADO.NET基础03

    数据库和VS的连接,实现数据的同步,让用户的一切信息都可以在数据库中留下记录. ADO.NET基础      它是连接所有数据库的一种特殊的技术,提供对不同的数据库统一操作接口. 在VS中也可以添加数 ...

  2. .Net Core 系列:2、ADO.Net 基础

    目录: 1.环境搭建 2.ADO.Net 基础 3.ASP.Net Core 基础 4.MD5.Sha256.AES 加密 5.实现登录注册功能 6.实现目录管理功能 7.实现文章发布.编辑.阅览和删 ...

  3. 有关ADO.NET基础中的基础的熟悉过程

    现在对于ADO.NET基础的理解与记忆并不严谨和完善 所以,只写一点关于自己的理解,嗯,一种去转换思维理解的方法吧,算是吧 希望各位前辈或者同学,积极指出其中的错误和偏差 个人对于刚接触的ADO.NE ...

  4. 如鹏网学习笔记(六)ADO.Net基础

    ADO.Net基础 一.ADO.Net简介 1,程序要通过SQL语句自动化的操作数据库,必须要用一个类库, 类库要提供execute("insert into ...")/exec ...

  5. ADO.NET基础开发

    ADO.NET是微软新一代.NET数据库的访问架构,ADO是ActiveX Data Objects的缩写.ADO.NET是数据库应用程序和数据源之间沟通的桥梁,主要提供了一个面向对象的数据访问架构, ...

  6. ADO.NET基础巩固-----连接类和非连接类

          最近的一段时间自己的状态还是不错的,早上,跑步,上自习看书,下午宿舍里面编程实战,晚上要么练习代码,要么去打球(在不打就没机会了),生活还是挺丰富的. 关于C#的基础回顾就先到前面哪里,这 ...

  7. ADO.NET基础(增删改查)

    ADO.NET是一种数据访问技术,就是将C#和MSSQL连接起来的一个纽带.可以通过ADO.NET将内存中的临时数据写入到数据库中,也可以将数据库中的数据提取到内存中供程序调用. ADO.NET是所有 ...

  8. C# ADO.NET基础&实战

    什么是ADO.NET:数据库访问技术! 作用:通过程序来连接访问数据库! 一.基础: using System.Data.SqlClient;    //数据库连接命名空间 string connec ...

  9. ADO.NET基础知识学习(SQLCOnnection&SQLCommand&SQLDataReader&SQLDataAdapter&DataSet)

    通过ADO.NET技术,我们可以高效的完成客户端同数据库之间的数据访问操作,便于我们在客户端程序简便高效的访问以及获取数据库中的有用数据,同时也可以对数据库中的数据进行更新,即可以完成客户端与数据库之 ...

  10. 【ADO.NET基础-GridView】GridView的编辑、更新、取消、删除以及相关基础操作代码

    代码都是基础操作,后续功能还会更新,如有问题欢迎提出和提问....... 前台代码: <asp:GridView ID=" OnRowDataBound="GridView1 ...

随机推荐

  1. 学习Kotlin语法(四)

    简介 在上一节,我们对Kotlin中函数的相关知识有了大致的了解,本章节我们将去了解一些Kotlin中的作用域函数. 目录 let:处理可空对象,链式操作 run:对象配置 + 计算返回值 with: ...

  2. SEO老了?GEO来了!玩转传统搜索+AI搜索,吸引眼球大作战!

    上网冲浪.查资料.找游戏攻略.看爱豆新闻--你们肯定天天都在用搜索引擎,对吧?比如百度.谷歌啥的.但你们有没有想过,为啥有些网站总排在前面,有些却石沉大海?这背后可有"潜规则"! ...

  3. 10个 DeepSeek 神级提示词,建议收藏!

    在当下人工智能飞速发展的时代,DeepSeek 作为一款功能强大的 AI 工具,能够帮助我们实现各种创意和需求.然而,要充分发挥它的潜力,掌握一些巧妙的提示词至关重要.今天,就为大家精心整理了 15 ...

  4. STM32F407数据手册中文版,STM32F429数据参考手册中文版

    发布一个适用STM32F405XX.STM32F407XX.STM32F415XX.STM32F417XX.STM32F427XX.STM32F437XX的中文数据手册,具体内容见下图: 首页 目录 ...

  5. 如何构造一款类似One API的大模型集成平台

    作为AI领域的开发者,我们经常需要调用多个不同的大语言模型,但面对各家不同的API规范和接入方式,集成工作变得繁琐.构建一个统一的大模型集成平台,能够极大地简化这一过程. 本文将探讨如何实现一个兼容O ...

  6. Spring Ioc源码引入:什么是IoC,IoC解决了什么问题

    Spring Ioc源码引入:什么是IoC,IoC解决了什么问题 什么是IoC 用一个故事举例: 小陈想开一家咖啡店,于是独自创业.找咖啡豆供应商.买咖啡机.招员工,样样都要自己来.开店成本很高.后来 ...

  7. 【HUST】网安纳米|2023年研究生纳米技术考试参考

    目录 1 纳米材料是什么 2 纳米材料的结构特性 3 纳米结构的其他特性 4 纳米结构的检测技术 5 纳米材料的应用 打印建议:PPT彩印(这样重点比较突出),每面12张PPT,简单做一下关键词目录, ...

  8. 【记录】日常|shandianchengzi的三周年创作纪念日

    机缘   接触 CSDN 之前,我已经倒腾过 hexo 搭建 github 博客.本地博客.图床:   接触 CSDN 之后,我还倒腾过纸质笔记.gitee 博客.博客园.知乎.b站.Notion.腾 ...

  9. 遇到的问题之“Parameter 'item' not found. ”

    一.问题 Parameter 'item' not found. 参数item找不到 二.原因 这里的值没有写对,#{item}的item应是改为productSku,改后就不会报错了 三.解决方案 ...

  10. 递归神经网络 RNN 原理(下)

    基于对 RNN 的初步认识, 还是先回顾一下它核心的步骤: (1) words / onehot vectors : \(x^{(t)} \in R^{|v|}\) **(2) word embedd ...