什么是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. Asp.net mvc基础(八)Layout页面的使用

    Layout页面相当于母版页. 使用步骤如下: 1.创建MVC5布局页 @RenderBody()渲染正文部分 @ViewBag.Title表示标题内容 也可以自己定义渲染的部分:比如在布局页中添加@ ...

  2. Asp.net mvc基础(三)View的查找

    1.指定转到的视图 View("指定的视图名称"); 优先于寻找Action方法名称可以创建的视图的文件夹,如果没有,就去View文件夹下的Shared文件夹寻找指定的视图名称. ...

  3. 微信小程序/H5 调起确认收款界面

    微信小程序/H5 调起确认收款界面详解(附代码+平台兼容处理) 场景:用户点击「收款」按钮后,系统调起微信收款组件,用户确认后完成转账或收款流程.该能力广泛用于现金营销.二手交易.佣金报酬.企业赔付等 ...

  4. DPDI(Dispatch PDI)kettle调度管理平台升级内容

    DPDI升级内容(20240815版) DPDI online部署方式 定时任务优化(支持轮询机制,Cron可提示近5次运行时间) 运行任务优化(支持多机器分布式运行) 其它小功能优化 1. 首页可手 ...

  5. STM32真的是很落后吗?

    STM32真的是很落后吗? 作为一名嵌入式开发老兵,我不止一次听到有人说"STM32已经过时了",尤其是那些刚入门或者看了几篇文章的新手.每当听到这样的言论,我都忍不住想笑,但又有 ...

  6. Ant Design Pro版中后台原型模板及Axure rplib元件库组件

    Ant Design Pro版中后台原型模板及Axure rplib元件库组件, Ant Design服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更 ...

  7. 用 DevEco Studio 模拟器这些能力 没真机也能高效调测鸿蒙原生应用

    随着鸿蒙生态的快速发展,越来越多的开发者投身于鸿蒙原生应用的开发中.然而,在实际开发中,真机设备短缺.调测场景复杂等问题常困扰着开发者.为解决这些问题,华为在DevEco Studio上为开发者提供了 ...

  8. 遇到的问题之“动态数据源报错-recyle error java.lang.InterruptedException”

    Druid出现DruidDataSource - recyle error - recyle error java.lang.InterruptedException: null异常排查与解决 一.线 ...

  9. 马尔柯夫的"概率转换和市场份额和概率矩阵"

    案例一 案例二 分析转移概率矩阵求法 分析求9月份各厂家分别拥有的市场份额  案例3 案例4 分析先算第二年,再根据第二年算第三年 问题2的解法:根据第二年市场份额算第三年的市场份额 案例5:确定平衡 ...

  10. vue3 基础-条件渲染 v-if 和 v-show

    本篇讲 vue 中对 dom 元素节点进行 "显示和隐藏" 的实现方式指令, 即 v-if 和 v-show. 其实一句话就能说明白, v-if 的底层是从 dom 树中增删节点; ...