C#中数据库的运用

原创 2015年11月18日 21:17:16

在c#中对数据的管理c# 可以有数据库,文件(如xml文件,txt文件),还有一些如容器类。其中数据库的操作相对便捷,安全。
下面我们讨论如何在程序中使用数据库。将数据库加入程序中一般来说分为以下三个步骤。
1、连接数据库:建立SqlConnection对象来连接数据库;
2、执行sql语句:指定SqlCommand对象,进行sql的执行和存储过程的调用;
3、返回结果:一般使用SqlDataReader或者DataSet联合SqlDataAdapter。

Connection 对象提供与数据源的连接。
Command对象使您能够访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。
DataReader 对象从数据源中提供快速的,只读的数据流。
DataAdapter 对象提供连接 DataSet 对象和数据源的桥梁。DataAdapter 使用 Command 对象在数据源中执行 SQL 命令,以便将数据加载到 DataSet 中,并使对 DataSet 中数据的更改与数据源保持一致。

在我们讨论SqlConnection之前需要了解一个重要内容,连接字符串。
那么什么是连接字符串呢?就是这样一组被格式化的键值对:
它告诉ADO.NET数据源在哪里,需要什么样的数据格式,提供什么样的访问信任级别以及其他任何包括连接的相关信息。
语法:连接字符串由一组元素组成,一个元素包含一个键值对,元素之间由“;”分开。

(1)标准的安全连接

Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPass
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;

(2)可信连接

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

在我们实际开发中,我们一般不会把连接字符串直接写在代码中,而是存储在配置文件里。把连接字符串写死在代码中,不便于维护,每次修改字符串时,还得重新编译代码。以ASP.NET应用程序为例,我们一般把连接字符串写在web.config配置文件的节点。例如:

<connectionStrings>
  <add name="connStr" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=myDataBase;Integrated Security=SSPI" />
</connectionStrings>

因此,我们只需要在程序中添加相应代码来获取配置文件中的值,比如:

string connStr=
ConfigurationManager.ConnectionStrings["connStr"].ToString(); 

一、SqlConnection对象。
语法: public sealed class SqlConnection : DbConnection, ICloneable
表示 与SQL Server 数据库的连接。 此类不能被继承。
命名空间: System.Data.SqlClient
程序集: System.Data(在 System.Data.dll 中)
SqlConnection 对象表示与 SQL Server 数据源的一个唯一的会话。 在客户端/服务器数据库系统中,它等效于一个到服务器的网络连接。 SqlConnection 与SqlDataAdapter和SqlCommand 一起使用,以便在连接到 Microsoft SQL Server 数据库时提高性能。

using (SqlConnection connection = new SqlConnection(
               connectionString))

关于这个类以下三个方法是必须了解的
Open: 使用 ConnectionString 所指定的设置打开数据库连接。
Dispose: 释放由 Component 使用的所有资源。
Close: 关闭与数据库的连接。 此方法是关闭任何已打开连接的首选方法。Close 方法回滚任何挂起的事务。 然后,它将连接释放到连接池,或者在连接池被禁用的情况下关闭连接。
除了在使用完资源后人为的释放掉使用资源关闭连接外,我们有一种更为优雅的方式,那就是使用using语句句柄托管资源。

二、SqlCommand对象
命名空间: System.Data.SqlClient
程序集: System.Data(System.Data.dll 中)

应该如何将数据交给SqlCommand对象呢?
(1)通过构造函数。代码如下:

string strSQL = "Select * from tb_SelCustomer";
SqlCommand cmd = new SqlCommand(strSQL, conn);

(2)通过Command对象的属性。代码如下:

SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = strSQL;

常用方法:
1、ExecuteNonQuery()  增删改操作
2、ExecuteScalar()   返回第一行第一列
3、ExecuteReader()  创建一个SqlDataReader用于读取数据
4、ExecuteXmlReader()  返回System.XmlReader实例,用于读取SQLServer中的XML字段的值
5、BeginExecuteNonQuery() 异步版ExecuteNonQuery()
6、EndExecuteNonQuery()  异步版ExecuteNonQuery()
文档参考:
http://www.cnblogs.com/kissdodog/archive/2013/09/23/3334579.html
它封装了所有对外部数据源的操作(包括增、删、查、改等SQL语句与存储过程),并在执行完成后返回合适的结果。

三、SqlDataReader和DataSet+SqlDataAdapter
两者间的区别:
1、SqlDataReader //基于连接,只读访问 适合数据量较小。
SqlDataAdapter //基于非连接,适于数据量较大时,可以另行修改,最后再把修改结果返回给数据库。要求资源也大一点
2、SqlDataAdapter 读取数据后将数据集放入DataSet ,DataSet 的数据存在本地客服机内存。
3、SqlDataReader返回的是一个数据读写器,只能一条条的读,操作起来不灵活,一般在只读的时候才用到。
SqlDataAdapter返回的是数据集或者表,可以对其中的数据作任意操作
4、写法上不同:
SqlDatReader执行前须先打开数据库,然后须生成一个COMMAND对象。再由COMMAND.EXECUTEREADER()方法赋值。完成后须手动关闭联接。
SqlCommand cmd = new SqlCommand(“select * from stu”, conn);
conn.Open();
SqlDataReader rdr = cmd.ExecuteReader();
conn.close();
SqlDataAdapter 执行时,自动打数据库,且不用Command的ExecuteReader方法进行赋值,完成后自动断开联接。

SqlDataAdapter adptr = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
adptr.Fill(ds, "stu");
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

在C#中运用SQLDMO备份和恢复Microsoft SQL Server数据库

SQLDMO(SQL Distributed Management Objects,SQL分布式管理对象)封装了Microsoft SQL Server数据库中的对象。SQLDMO是Microsoft...

Access数据库 + C# 运用实例

  • 2011-04-26 10:43
  • 131KB
  • 下载

C# 使用LINQ访问数据库

C#的LINQ方式访问数据库无疑是非常方便的,下面给出了使用LINQ方式访问MSSQL的基本方法。     首先声明命名空间using System.Data.SqlClient;   再使...

c# winform开发 之 SQLLite 数据库 部署

恰好开发一个winform程序,希望在客户端存储一些信息,在离线状态下也能够同步数据库。本来解决方案是在本地采用xml 文件进行存储数据,也很好实现,但是xml文件操作起来没有数据库那么方便,于是就更...

C#连接Access、SQL Server、Oracle、MySQL、DB2和SyBase数据库的代码集

C#连接六类数据库的代码集 本文列出了C#连接Access、SQL Server、Oracle、MySQL、DB2和SyBase六种不同数据库的程序源码

C# 连接数据库字符串【SQL SERVER】

一:C# 连接SQL数据库 Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=...

C#连接MySql数据库

1、要连接MySql数据库必须首先下载MySql官方的连接.net的文件,文件下载地址为http://dev.mysql.com/downloads/connector/net/6.6.html#do...

C# 之 EF CodeFirst创建MySQL数据库

MySQL安装好了,今天跟大家交流一下怎么利用EntityFramework的CodeFirst在MySQL数据库中创建数据库 目标框架:.NET Framework 4 第一步:...

关于C#下使用轻量级数据库的一些经验

数据库,在软件中已经是一个重要的部分了,基本上的软软件中都会用到数据库,但是数据库也有很多种,在这里我只是分享下自己在C#下使用轻量级数据库的一些经验和感想。 首先说下当时遇到的问题, 1.到底用...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)