c与数据库访问技术内容摘要:

在这段代码里的业务逻辑是: (1)创建连接字符串,从中可以看出 Connection对象是使用 OleDB类型的 Data Provider,连接到 D盘下 Access数据库中。 (2)根据连接字符串,创建 Connection类型的对象,这里用到了 OleDbConnection。 (3)打开数据源的连接。 (4)执行数据库的访问操作代码。 (5)关闭数据源连接。 完整案例 利用 SQL Server2020建立一个数据库 Student,并建立相应的表 studentInfo 用 Visual C2020建立一个基于 Window的应用程序,并添加一个按钮,如图下 双击按钮,自动切换到后台代码编辑文件 ,并自动添加了与此按钮的 Click事件相关的处理程序 button1_Click(object sender, EventArgs e) 在 : using。 在事件处理程序 button1_Click中添加代码: using System。 using。 using。 using。 using。 using。 using。 using。 namespace DataBase { public partial class Form1 : Form { public Form1() { InitializeComponent()。 } private void button1_Click(object sender, EventArgs e) { try { SqlConnection conn = new SqlConnection()。 // = server=(local)。 user id=sa。 Initial Catalog=Student。 pwd=。 = server=(local)。 Initial Catalog=Student。 Integrated Security=SSPI。 ()。 if ( == ) { (连接已经打开 )。 } ()。 if ( == ) { (连接已经关闭 )。 } } catch (Exception ex) { (数据库连接失败 + )。 } } } } Command(数据命令 )对象与查询语句 建立了数据库连接之后,就可以执行数据访问操作和数据操纵操作了。 一般对 数据库的操作被概括为 CRUD—— Create、 Read、 Update和 Delete。 Command类去执行这些操作。 和 Connection 对象类似,在 .NET 中存在 SqlCommand 和 OleDbCommand,除了OleDbCommand类没有 ExecuteXmlReader方法之外, OleDbCommand与 SqlCommand非常类似。 Command对象主要用来执行 SQL语句。 利用 Command对象,可以查询数据和修改数据。 Command对象是由 Connection对象创建的,其连接的数据源也将由 Connection来管理。 而使用 Command对象的 SQL属性获得的数据对象,将由 DataReader和 DataAdapter对象填充到 DataSet里,从而完成对数据库数据操作的工作。 Command对象的常用属性 Command对象的常用属性有 Connection、 ConnectionString、 CommandType、 CommandText和 CommandTimeout。 属性 Connection 属性用来获得或设置该 Command 对象的连接数据源。 比如某 SqlConnection类型的 conn对象连在 SQL Server服务器上,又有一个 Command类型的对象 cmd,可以通过=conn来让 cmd在 conn对象所指定的数据库上操作。 不过,通常的做法是直接通过 Connection 对象来创建 Command 对象,而 Command 对象不宜通过设置 Connection属性来更换数据库,所以上述做法并不推荐。 属性 ConnectionString 属性用来获得或设置连接数据库时用到的连接字符串,用法和上述Connection属性相同。 同样,不推荐使用该属性来更换数据库。 属 性 CommandType属性用来获得或设置 CommandText 属性中的语句是 SQL语句、 数据表名还是存储过程。 该属性的取值有 3个: 如果把 CommandType设置成为 Text或不设置,说明 CommandText属性的值是一个 SQL语句。 如果把 CommandType设置成为 TableDirect,说明 CommandText属性的值是一个要操作的数据表的名。 ( SQL ) 如果把 CommandType设置成为 StoredProcedure,说明 CommandText属性的值是一个存储过程。 如果不显示设置 CommandType的值,则 CommandType默认为 Text。 表 CommandType枚举值 值 说明 StoredProcedure 指示 CommandType属性的值为存储过程的名称 TableDirect 指示 CommandType属性的值为一个或多个表的名称 只有 OLE DB的 .NET Framework数据提供程序才支持 TableDirect Text 指示 CommandType属性的值为 SQL文本命令 (默认 ) String str=Sever=(local)。 database=student。 Integrated Security=true。 SqlConnection conn=new SqlConnection(str)。 ()。 SqlCommand cmd=new SqlCommand(select * from Student, conn)。 属 性 根据 CommandType属性的不同取值,可以使用 CommandText属性获取或设置 SQL语句、数据表名 (仅限于 OLE DB数据库提供程序 )或存储过程。 Command对象的常用方法 同样,在不同的数据提供者的内部, Command对象的名称是不同的,在 SQL Server Data Provider里叫 SqlCommand,而在 OLE DB Data Provider里叫 OleDbCommand。 下面将详细介绍 Command类型对象的常用方法,包括构造函数、执行不带返回结果集的SQL语句方法、执行带返回结果集的 SQL语句方法和使用查询结果填充 DataReader对象的方法。 构造函数用来构造 Command对象。 对于 SqlCommand类型的对象,其构造函数说明如表 26所示。 表 26 SqlCommand类构造函数说明 函数定义 参数说明 函数说明 SqlCommand() 不带参数 创建 SqlCommand对象 SqlCommand(string cmdText) cmdText: SQL 语句字符串 根据 SQL语句字符串,创建SqlCommand对象 SqlCommand(string cmdText, SqlConnection connection) cmdText: SQL 语句字符串 connection: 连接到的数据源 根据数据源和 SQL语句,创建 SqlCommand对象 SqlCommand(string cmdText, SqlConnection connection, SqlTransaction transaction) cmdText: SQL语句字符串 connection: 连接到的数据源 transaction: 事务对象 根据数据源和 SQL语句和事务对象,创建 SqlCommand对象 (1) 第一个构造函数不带任何参数 SqlCommand cmd=newe SqlCommand()。 =ConnectionObject。 =CommandText。 上面代码段使用默认 的构造函数创建一个 SqlCommand 对象。 然后,把已有的 Connection 对象 ConnectionObject和命名文本 CommandText分别赋给了 Command对象的 Connection属性和CommandText属性。 例如, CommandText可以从数据库检索数据的 SQL select语句: string CommandText= select *from studentInfo。 除此之外,许多关系型数据库,例如 SQL Server 和 Oracle,都支持存储过程。 可以把存储过程的名称指定为命名文本。 例如,使用编写 GetAllStudent存储过程为命名文本: string CommandText= GetAllStudent。 =。 (2) 第 二 个构造函数 可以接受一个命令文本 SqlCommand cmd=newe SqlCommand(CommandText)。 =ConnectionObject。 上面的代码实例化了一个 Command 对象,并使用给定命令文本对 Command 对象的CommandText 属性进行了初始化。 然后,使用已有的 Connection 对象对 Command 对象的Connection属性进行了赋值。 (3) 第 三 个构造函数 接受一个 Connection和一个命名文本 SqlCommand cmd=newe SqlCommand(CommandText, ConnectionObject)。 注意这两个参数的顺序,第一个为 string类型的命令文本,第二个为 Connection对象。 (4) 第 四 个构造函数 接受三个 参数,第三个参数是 SqlTransaction对象,这里不做讨论。 另外, Connection 对象提供了 CreateCommand 方法,该方法将实例化一个 Command 对象,并将其 Connection属性赋值为建立该 Command对象的 Connection对象。 无论在什么情况下,当把 Connection对象赋值给 Command对象的 Connection属性时,并不需要 Connection 对象是打开的。 但是,如果连接没有打开,则在命令执行之前必须首先打开连接。 而对于 OleDbCommand 类型的对 象,其构造函数如 27 所示。 同样可以看出,它们和SqlCommand类的构造函数非常相似。 表 27 OleDbCommand类构造函数说明 函数定义 参数说明 函数说明 OleDbCommand() 不带参数 创建 OleDbCommand对象 OleDbCommand(string cmdText) cmdText: SQL语句字符串 根据 SQL语句字符串,创建OleDbCommand对象 OleDbCommand(string cmdText,OleDbConnection connection) cmdText: SQL语句字符串 connection:连接到的数据源 根据数据源和 SQL语句,创建 OleDbCommand对象 OleDbCommand(stringcmdText, OleDbConnection connection , OleDbTransaction transaction) cmdText: SQL语句字符串 connection:连接到的数据源 transaction:事务对象 根据数据源和 SQL语句和事务对象,创建 OleDbCommand对象 命令对象构造完成 后,就可以执行命令对数据库进行操作了。 命令对象所提供的用于执行命令的方法有很多种,具体使用哪个方法取决于命令的执。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。