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的属性显示出来(编辑:雷林鹏 来源:网络)

原文地址:https://www.cnblogs.com/pengpeng1208/p/9322406.html