zoukankan      html  css  js  c++  java
  • ADO.NET

      一、ADO.NET概要

      ADO.NET是.NET框架中的重要组件,主要用于完成C#应用程序访问数据库

      二、ADO.NET的组成

      ①System.Data → DataTable,DataSet,DataRow,DataColumn,DataRelation,Constraint,DataColumnMapping,DataTableMapping

      ②System.Data.Coummon → 各种数据访问类的基类和接口

      ③System.Data.SqlClient → 对Sql Server进行操作的数据访问类

      主要有: a) SqlConnection → 数据库连接器

      复制代码b) SqlCommand → 数据库命名对象

      复制代码c) SqlCommandBuilder → 生存SQL命令

      复制代码d) SqlDataReader → 数据读取器

      复制代码e) SqlDataAdapter → 数据适配器,填充DataSet

      复制代码f) SqlParameter → 为存储过程定义参数

      复制代码g) SqlTransaction → 数据库事物

      复制代码三、Connection连接对象

      Connection对象也称为数据库连接对象,Connection对象的功能是负责对数据源的连接。所有Connection对象的基类都是DbConnection类。

      3.1、连接字符串

      基本语法:数据源(Data Source)+数据库名称(Initial Catalog)+用户名(User ID)+密码(Password)

      3.1.1、SQL Server连接字符串

      Data Source=.;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

      3.1.2、Access连接字符串

      Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:myDatabase.mdb;User Id=admin;Password=;

      3.1.3、MySQL连接字符串

      Server=myServerAddress;Database=myDatabase;Uid=myUsername;Pwd=myPassword;

      3.1.4、DB2连接字符串

      Server=myAddress:myPortNumber;Database=myDatabase;UID=myUsername;PWD=myPassword;

      3.1.5、Oracle连接字符串

      Data Source=TORCL;User Id=myUsername;Password=myPassword;

      在VS中获得连接字符串并连接到数据库:工具->连接到数据库

      3.2、连接到数据库

      Connection对象有两个重要属性:

      (1)ConnectionString:表示用于打开 SQL Server 数据库的字符串;

      (2)State:表示 Connection 的状态,有Closed和Open两种状态。

      Connection对象有两个重要方法:

      (1)Open()方法:指示打开数据库;

      (2)Close()方法:指示关闭数据库。

      四、Command对象

      Command对象也称为数据库命令对象,Command对象主要执行包括添加、删除、修改及查询数据的操作的命令。也可以用来执行存储过程。用于执行存储过程时需要将Command对象的CommandType 属性设置为CommandType.StoredProcedure,默认情况下CommandType 属性为CommandType.Text,表示执行的是普通SQL语句。

      Command主要有三个方法:

      4.1、ExecuteNonQuery

      ExecuteNonQuery():执行一个非查询SQL语句,返回受影响的行数,这个方法主要用于执行对数据库执行增加、更新、删除操作,注意查询的时候不是调用这个方法。用于完成insert,delete,update操作。执行时返回影响行数。

      using 关键字有两个主要用途:

      (一).作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型。

      (二).作为语句,用于定义一个范围,在此范围的末尾将释放对象。

      using只能用于实现了IDisposable接口的类型,禁止为不支持IDisposable接口的类型使用using语句,否则会出现编译错误;

      4.1.1、拼接字符串

      string str = string.Format("Data Source={0};Initial Catalog=小贝;User ID={2};Password={3}", txtSQLAdd.Text, txtSqlName.Text, txtUser.Text, txtPwd.Text); 4.1.2、参数

      如果直接拼接字符串会存在安全隐患,使用参数可以解决问题。

      4.1.3、增加、删除、修改

      这里的示例是insert,如果想执行delete与update代码是一样的,只是变化了SQL。

      增加:insert [into] <表名> (列名) values (列值) 例:insert into Strdents (姓名,性别,出生日期) values ('开心朋朋','男','1980/6/15')

      删除:delete from <表名> [where <删除条件>] 例:delete from a where name='开心朋朋'(删除表a中列值为开心朋朋的行)

      修改:update <表名> set <列名=更新值> [where <更新条件>] 例:update tongxunlu set 年龄=18 where 姓名='蓝色小名'

      4.2、ExecuteScalar ()

      ExecuteScalar ()从数据库检索单个值。这个方法主要用于统计操作。ExecuteScalar ()这个方法是针对SQL语句执行的结果是一行一列的结果集,这个方法只返回查询结果集的第一行第一列。针对SQL聚合函数(count,max,min,avg,sum)使用。

      聚合函数:select count(*) from <表名>

      可能返回NULL值,需要对结果进行判断。

      if (object.Equals(my,null)) //可以使用Equals进行Null值的判断,易读性强

      复制代码Console.WriteLine("Not Data");

      复制代码else

      复制代码Console.WriteLine("Yes");

      复制代码五、ExecuteReader获得数据

      ExecuteReader用于实现只进只读的高效数据查询。用来读取一个数据表。用于查询一个数据表。

      ExecuteReader:返回一个SqlDataReader对象,可以通过这个对象检查查询结果。它提供的是只进只读的执行方式,读取一行之后,移动到下一行,上一行的数据就不能使用了。手动调用Read()方法之后,SqlDataReader对象才会移到结果集的第一行。Read()方法会返回一个bool值,True则下行可用,false表示下行不可用。

      5.1、使用ExecuteReader实现数据查询//执行查询返回结果集

      复制代码SqlDataReader sdr = cmd.ExecuteReader();

      复制代码//下移游标,读取一行,如果没有数据了则返回false

      复制代码while (sdr.Read())

      复制代码{

      复制代码Console.WriteLine("编号:" + sdr["Id"] + ",车名:" + sdr["Title"] + ",速度:" + sdr["Speed"]);

      复制代码}

      复制代码5.2、实体类 实体类用于封装及映射数据。 5.3、DataGridView展示数据

      定义一个表示对象的类

      定义一个对象的列表

      初始化一个对象,用sqlReader()将数据读出后存入对象。

      把对象加入对象列表中。

      对象列表与DataGridView 显示。

      窗口间的传值

      一个窗口定义一个对象【1】

      在另外一个窗口定义一个对象2

      显示窗口的时候把1赋值给2

      在窗口2加载的时候把2的属性显示出来(编辑:雷林鹏 来源:网络)

  • 相关阅读:
    Java中如何判断一个字符串是否为数字
    Web发展简史
    常用编程语言
    浏览器运行原理
    [LeetCode]69. x 的平方根(数学,二分)
    [计算机网络]TCP/IP协议-运输层
    [剑指Offer]33-根据后序序列判断是否能组成BST
    [剑指Offer]17-打印从1到最大的n位数(递归)
    [剑指Offer]56-数组中数字出现的次数(位运算)
    [剑指Offer]18-题目一:删除链表的节点 题目二:删除链表中重复节点
  • 原文地址:https://www.cnblogs.com/pengpeng1208/p/9322406.html
Copyright © 2011-2022 走看看