ADO.NET结合C#常见的数据库操作(一)

简介:   ADO.NET使我们在VS开发中用到最多的数据库访问接口,这里我不见它的原理和其它,直接说它的几种常见的用法。 声明:在ADO.NET全部讲完之后,会将整个源代码贴出,将单个的时候只贴出涉及到的代码。

  ADO.NET使我们在VS开发中用到最多的数据库访问接口,这里我不见它的原理和其它,直接说它的几种常见的用法。

声明:在ADO.NET全部讲完之后,会将整个源代码贴出,将单个的时候只贴出涉及到的代码。

一、SqlCommand  

  表示要对 SQL Server 数据库执行的一个 Transact-SQL 语句或存储过程。 此类不能被继承。Command类可以执行任何类型的SQL语句。

  1、构造函数

  我们在使用其执行SQL语句的时候,必须首先声明其对象,常用的三种:

  ◆ SqlCommand()           初始化 SqlCommand 类的新实例。

  ◆ SqlCommand(String)   用查询文本初始化 SqlCommand 类的新实例。

  ◆ SqlCommand(String,SqlConnection)  初始化具有查询文本和 SqlConnection 的 SqlCommand 类的新实例。

【注】SqlConnection 的使用将不单独讲,因为在操作数据库的时候都会用到。

  2、常见属性

  ◆ CommandText    获取或设置要对数据源执行的 Transact-SQL 语句、表名或存储过程。

  ◆ CommandType   获取或设置一个值,该值指示如何解释 CommandText 属性。

  ◆ Connection         获取或设置 SqlCommand 的此实例使用的 SqlConnection。

  ◆ Parameters         获取 SqlParameterCollection(sql语句中需要输入的阐述集合)。

  3、常用方法

  ◆ ExecuteNonQuery    执行 Transact-SQL INSERT、DELETE、UPDATE 及 SET 语句等命令并返回受影响的行数。 

  ◆ ExecuteReader()     将 CommandText 发送到 Connection 并生成一个 SqlDataReader。

  ◆ ExecuteReader(CommandBehavior)  将 CommandText 发送到 Connection,并使用 CommandBehavior 值之一生成一个 SqlDataReader。

  ◆ ExecuteScalar         执行查询,并返回查询所返回的结果集中第一行的第一列。 忽略其他列或行。

  ◆ Dispose()                释放由 Component 使用的所有资源。 

 

  3、示例

  ◇使用SqlCommand执行添加数据的操作:

string teacherName = NameTextBox.Text.Trim();
string strConn = ConfigurationManager.ConnectionStrings["ConnectionStr"].ToString();//获取数据库连接字符串
SqlConnection conn = new SqlConnection(strConn);//创建连接

try
{
     conn.Open();//打开数据库连接
     string inserStr = "insert into Fortyfour_Teacher (TeacherName) values (@teacherName)";
     using(SqlCommand cmd = new SqlCommand(inserStr,conn))    
   { SqlParameter p1
= new SqlParameter("@teacherName",teacherName); cmd.Parameters.Add(p1);//添加参数 if (cmd.ExecuteNonQuery() > 0) { //添加成功的操作 } else { //添加失败的操作 } } } catch(Exception ex){ throw ex; } finally{ conn.Close();//关闭数据库,可以在打开 conn.Dispose();//关闭数据库,释放控件,不可在连接。 }

  ◇使用SqlCommand执行删除、修改数据的操作,这里我不写出代码,这个和添加很像,区别在于 sql语句不一样

  ◇使用SqlCommand执行查询数据的操作,这个需要结合DataReader()或者DataAdapter()来获得数据库中的数据,DataAdapter()将在后面的文章中详细讲解,现在将讲解一下DataReader()。

二、SqlDataReader 

  提供一种从 SQL Server 数据库读取行的只进流的方式。 此类不能被继承。只能向下顺序执行,一次读取一条记录,所以需要随时保存的记录。

  1、常用属性

  ◆ IsClosed     检索一个布尔值,该值指示是否已关闭指定的 SqlDataReader 实例。

  2、常用方法

  ◆ Read()                        使 SqlDataReader 前进到下一条记录。

  ◆ Close                          关闭 SqlDataReader 对象。 

  ◆ Dispose()                    释放 DbDataReader 类的当前实例所使用的所有资源。 

  ◆ IsCommandBehavior   确定指定的 CommandBehavior 是否与 SqlDataReader 的对应项匹配。

  ◆ IsDBNull                      获取一个值,用于指示列中是否包含不存在的或缺少的值。

  3、示例,结合SqlCommand

 

private static void ReadStudent(string connectionString)
{
    string queryString = "SELECT StudentId, StudentName FROM Student";
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        SqlCommand command =
            new SqlCommand(queryString, connection);
        connection.Open();

        using(SqlDataReader reader = command.ExecuteReader()){//使用DataReader对象保存读取的数据
          while (reader.Read())//向下读取数据,判断是否有数据
          {
              Console.WriteLine(String.Format("{0}, {1}",reader[0], reader[1]));
          }
        }
    }
}

 

   参考资料:MSDN

  【注】下篇文章将详细讲解DataAdapter与DataSet/DataTable,以及CommandBuilder

 

 

 

目录
相关文章
|
26天前
|
SQL 数据库连接 数据库
你不知道ADo.Net中操作数据库的步骤【超详细整理】
你不知道ADo.Net中操作数据库的步骤【超详细整理】
15 0
|
1月前
|
SQL 数据库 C#
C# .NET面试系列十一:数据库SQL查询(附建表语句)
#### 第1题 用一条 SQL 语句 查询出每门课都大于80 分的学生姓名 建表语句: ```sql create table tableA ( name varchar(10), kecheng varchar(10), fenshu int(11) ) DEFAULT CHARSET = 'utf8'; ``` 插入数据 ```sql insert into tableA values ('张三', '语文', 81); insert into tableA values ('张三', '数学', 75); insert into tableA values ('李四',
61 2
C# .NET面试系列十一:数据库SQL查询(附建表语句)
|
2月前
|
开发框架 Oracle 关系型数据库
ASP.NET实验室LIS系统源码 Oracle数据库
LIS是HIS的一个组成部分,通过与HIS的无缝连接可以共享HIS中的信息资源,使检验科能与门诊部、住院部、财务科和临床科室等全院各部门之间协同工作。 
35 4
|
3月前
|
存储 NoSQL API
一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库
一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库
135 0
|
22天前
|
存储 SQL 数据库
C# 将 Word 转文本存储到数据库并进行管理
C# 将 Word 转文本存储到数据库并进行管理
|
26天前
|
SQL 安全 数据库连接
使用ADO.NET访问数据库
使用ADO.NET访问数据库
10 0
|
1月前
|
SQL 存储 关系型数据库
C# .NET面试系列十:数据库概念知识
#### 1. 为什么要一定要设置主键? 设置主键是数据库设计中的一个重要概念,有几个主要原因: 1、唯一性 ```c# 主键必须保证表中的每一行都有唯一的标识。这样可以避免数据冗余和不一致性。如果没有主键或者主键不唯一,就可能出现数据混乱或错误。 ``` 2、查询性能 ```c# 数据库系统通常会使用主键来加速数据检索。主键通常会被索引,这样可以更快速地找到特定行的数据,提高查询效率。 ``` 3、关联性 ```c# 主键常常用于建立表与表之间的关系。在关系数据库中,一个表的主键通常与其他表中的外键建立关联,这种关系对于数据的一致性和完整性非常重要。 ``` 4、数据完
129 1
C# .NET面试系列十:数据库概念知识
|
3月前
|
C# 数据库 数据库管理
C#使用Poco链接SQLite数据库配置文件和错误的解决
C#使用Poco链接SQLite数据库配置文件和错误的解决
24 1
|
3月前
|
关系型数据库 MySQL 数据库
Net Core备份MySQL数据库
Net Core备份MySQL数据库
31 2
|
4月前
|
SQL 关系型数据库 MySQL
【Unity 3D】C#从mysql数据库中读取、封装SQL语句(附源码)
【Unity 3D】C#从mysql数据库中读取、封装SQL语句(附源码)
90 0