在学习过程中,我们常常需要连接数据库对大量的数据进行管理(增删改查等),这就需要对大量的数据有统一的管理方法--数据库。下面介绍数据库的相关知识和使用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数据提供的程序还有CommandBuilder,Transaction等。
对象 | 基类 | 介绍 |
Connection | DbConnection | 建立与特定数据源的连接。 |
Command | DbCommand | 对数据源执行命令。 |
DataReader | DbDataReader | 从数据源中读取只进且只读的数据流。 |
DataAdapter | DbDataAdapter | 用数据源填充DataSet并解析更新。 |
(3).NET读取数据库的两种方式
第一种,利用Connetction、Command和DataReader对象。第二种,利用Connection、Command、DataAdapter和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° 连接字符串在定义时,如果数据库没有密码可以省略。文章来源:https://www.toymoban.com/news/detail-768730.html
原创作品,请勿抄袭文章来源地址https://www.toymoban.com/news/detail-768730.html
到了这里,关于VS/C#连接SQL Server数据库详细介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!