VS/C#连接SQL Server数据库详细介绍

    在学习过程中,我们常常需要连接数据库对大量的数据进行管理(增删改查等),这就需要对大量的数据有统一的管理方法--数据库。下面介绍数据库的相关知识和使用VS窗体应用程序连接MySQL数据库的步骤。

目录

一、数据库的相关知识

1、概念

2、作用

3、原理

4、分类

(1)关系型数据库

(2)非关系型数据库

二、数据库连接

1、预备知识

(1)ADO.NET

(2).NET数据提供程序

(3).NET读取数据库的两种方式

(4)连接步骤

2、连接数据库

(1)定义连接字符串

(2)创建Connection对象

(3)打开与数据库的连接

(4)检查是否连接成功

3、访问数据

(1)创建SQL语句

(2)创建SqlCommand的实例

(3)Command设置

(4)执行命令

(4)关闭连接

4、注意事项

一、数据库的相关知识

1、概念

    数据库(database)是一个按数据结构来存储和管理数据的计算机软件系统,是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的,有组织的、可共享的、统一管理的大量数据的集合

2、作用

    数据库的作用是对数据进行存储、删除等操作。数据库是存放数据的仓库。数据库的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。

    数据库中的数据可以通过连接到数据库后,建立SQL语句来对数据进行批量修改,也可以在局域网范围内,多用户同时进行数据库中数据的修改。这就使得其大大提高了数据管理效率、降低了数据管理的复杂度。

3、原理

    在用户计算机和数据库之间,利用不同的访问技术和方法,用户计算机向数据库服务器发送请求,随时访问数据。

    可以概括为:客户端与服务器建立连接 -> 建立连接后,客户端发送请求给服务器 -> 服务器接到请求后,响应其响应信息 -> 客户端接收服务器所返回的信息 -> 客户端与服务器断开连接。

4、分类

    数据库可以分为关系数据库和非关系数据库。

(1)关系型数据库

    关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关联的表格分类、合并、连接或选取等运算来实现数据库的管理。其实,目前关系型数据库的具体产品有:Oracle和MySQL。其中Oracle在数据库领域是占领导地位的。

(2)非关系型数据库

    主要有键值存储数据库、列存储数据库、面向文档数据库、图形数据库等类型。

    键值数据库就类似传统语言中使用的哈希表。可以通过key来添加、查询或者删除数据库,因为使用key主键对数据库进行访问,所以会获得很高的性能及扩展性。键值数据库有:Memcached、Redis、MemcacheDB。

 列存储数据库将数据存储在列族中,一个列族存储经常被一起查询的相关数据,比如学生,我们经常会查询某个学生的姓名和学号,而不是成绩。这种情况下姓名和学号会被放到一个列族中,成绩会被放到另一个列族中。列存储数据库有:Cassandra、HBase。

    文档型数据库的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。文档型数据库比键值数据库的查询效率更高;将数据以文档形式存储,每个文档都是自包含的数据单元,是一系列数据项的集合。文档型数据库有:MongoDB、CouchDB。

    图形数据库允许我们将数据以图的方式存储。实体会被作为顶点,而实体之间的关系则会被作为边。比如我们有三个实体,Steve Jobs、Apple和Next,则会有两个“Founded by”的边将Apple和Next连接到Steve Jobs。图形数据库有:Neo4J、InforGrid。

二、数据库连接

1、预备知识

(1)ADO.NET

    ADO NET是微软.NET平台下提出的数据访问模型,它设计了一系列对各类数据的访问形式,并提供了对应的类,类中提供与对应数据交互的属性和方法来对数据进行存取操作。

(2).NET数据提供程序

    用于SQL Server的.NET Framework,要使用System.Data.SqlClient命名空间。

    用于数据处理的四个核心对象:Connection、Command、DataReader、DataAdapter(如下表)。除去这四个核心类之外,.NET数据提供的程序还有CommandBuilderTransaction等。

对象基类介绍
ConnectionDbConnection建立与特定数据源的连接。
CommandDbCommand对数据源执行命令。
DataReaderDbDataReader从数据源中读取只进且只读的数据流。
DataAdapterDbDataAdapter用数据源填充DataSet并解析更新

(3).NET读取数据库的两种方式

    第一种,利用ConnetctionCommandDataReader对象。第二种,利用Connection、CommandDataAdapter和DataSet对象。二者的不同之处在于,第一种方法,只能读取数据库,但是不能对数据库的数据进行修改;第二种方法更为灵活,可以对数据库进行各种操作。如下图:

                                             --->Connection对象   ---> DataReader对象

              数据库  ---------->                                      

                                              --->Command对象     ---> DataSet对象、 DataAdapter对象

(4)连接步骤

    使用ADO.NET访问数据库的一般步骤如下:(连接SQL Server数据库)

1° 根据数据源确定使用.NET 框架数据提供程序。

2° 使用Connection对象建立与数据源的连接。

    使用SqlConnection类表示到SQL Server数据库的连接,其他子类在这里不做介绍;

    Connection对象的主要成员:

属性ConnectionString连接字符串
Database连接的数据库
方法Open打开数据库连接
Close关闭数据库连接

3° 使用Command对象执行对数据源的操作命令,通常是SQL命令。

4° 使用DataReader、DataSet等对获得的数据进行操作。

5° 使用数据控件向用户显示数据。

2、连接数据库

(1)定义连接字符串

连接字符串格式为:Data Source=服务器名;Initial Catalog=数据库名; UID=用户名;Pwd=密码

或者也可以使用代码编辑器将连接字符串写为:

SqlConnection objSqlConnection = new SqlConnection ("server = ***; uid = ***; pwd = ***; database = ***");

objSqlConnection.Open();

注:objSqlConnection  为创建的连接对象名称。

本地服务器可以写为:localhost 或者 127.0.0.1 或者 本地机子名称。

(2)创建Connection对象

SqlConnection  connection  =  new SqlConnection(connString);

注:connString为定义的连接字符串。

(3)打开与数据库的连接

connection.Open( )

注:connection为创建的Connection对象。

(4)检查是否连接成功

MessageBox.Show("连接成功!");

    建立一个窗体应用程序,窗体上放置一个按钮,单击按钮时连接SQL Server中指定数据库,连接成功,弹出对话框,显示“连接成功!”,否则显示错误信息。

3、访问数据

    对数据库中数据的访问主要是通过创建Command对象来实现的,Command对象可以对数据库下达增删改查的指令。NET Framework 数据提供Command类,SQL Server数据提供程序提供有SqlCommand对象。

    Command对象的主要成员:

属性CommandText欲执行的内容
CommandType命令类型
Transaction

事务级别

Parameters参数
方法ExecuteNonQuery()返回受影响的行数
ExecuteReader()返回DataReader类型值
ExecuteScalar()执行SELECT查询,返回Object类型值,得到的返回结果为第一行第一列的值

(1)创建SQL语句

例如:

String sql = “SELECT COUNT(*) FROM ***”;

    在这里创建的SQL语句只是举例,实际的SQL语句需要根据具体的需要来创建,SQL语句的创建规则在这里不做介绍。 

(2)创建SqlCommand的实例

SqlCommand  command = new SqlCommand(sql, connection);

    创建SqlCommand对象前要注意数据库的连接已经打开(数据库能够正常连接),创建实例的两个参数--sql为创建的SQL查询语句,connection为创建的连接对象(Connection)。

(3)Command设置

    在上一步中中我们已经创建Command类型的变量command,在这里对其进行设置,有两种方法,SQL语句和存储过程,如下表:

SQL语句存储过程
CommandText="SQL 语句";="Sp_DeleteName";
CommandType=CommandType.Text;=CommandType.StoredProcedure;
 Connection =objConnection;=objConnection

    注:Sp_DeleteName为SQL Server在服务器上创建的存储过程。

(4)执行命令

int  num = command.ExecuteScalar();

(4)关闭连接

connection.Close( )

4、注意事项

1° 使用SqlConnection类时,需要把程序集System.Data.dll添加到项目的引用中,才可以使用这个类,一般项目默认包含。

2° Connection的Close方法必须显式关闭连接。

3° 连接字符串在定义时,如果数据库没有密码可以省略。

原创作品,请勿抄袭

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值