C#数据库操作

上传人:人*** 文档编号:559763430 上传时间:2024-03-07 格式:DOCX 页数:8 大小:54.62KB
返回 下载 相关 举报
C#数据库操作_第1页
第1页 / 共8页
C#数据库操作_第2页
第2页 / 共8页
C#数据库操作_第3页
第3页 / 共8页
C#数据库操作_第4页
第4页 / 共8页
C#数据库操作_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《C#数据库操作》由会员分享,可在线阅读,更多相关《C#数据库操作(8页珍藏版)》请在金锄头文库上搜索。

1、C#操作SQL Server数据库 1、概述 2、连接字符串的写法 3、SqlConnection 对象 4、SqlCommand 对象 5、SqlDataReader 对象 6、DataSet 对象 7、释放资源1、概述提供了丰富的数据库操作,这些操作可以分为三个步骤:第一,使用SqlConnection对象连接数据库;第二,建立SqlCommand对象,负责SQL语句的执行和存储过程的调用;第三,对SQL或存储过程执行后返回的结果”进行操作。对返回结果”的操作可以分为两类:两者比较:一是用SqlDataReader直接一行一行的读取数据集; 二是DataSet联合SqlDataAdapte

2、r来操作数据库。SqlDataReader时刻与远程数据库服务器保持连接,将 远程的数据通过流”的形式单向传输给客户端,它是只 读”的。由于是直接访问数据库,所以效率较高,但使用 起来不方便。DataSet 一次性从数据源获取数据到本地,并在本地建 立一个微型数据库(包含表、行、列、规则、表之间的关 系等),期间可以断开与服务器的连接,使用SqlDataAdapter对象操作本地微型数据库”,结束后 通过SqlDataAdapter 一次性更新到远程数据库服务 器。这种方式使用起来更方,便简单。但性能较第一种稍 微差一点。(在一般的情况下两者的性能可以忽略不计。)DataSetDataTabl

3、eCollectionDataRowCollecdariDataColumnCallectionCflostra jntCo H ect i onDataRlationCollCtion数据表XML數据库2、连接字符串的写法string connectString = Data Source二.;InitialCatalog=Student;Integrated Security二True;3、SqlConnection 对象命名空间:System.Data.SqlClient.SqlConnection;返回数据库连接对象,参数字符串。实例化连接对象”,并打开连接SqlConnection

4、sqlCnt 二 new SqlConnection(connectString); sqlCnt. Open();使用完成后,需要关闭连接对象”sqlC nt .Close();4、SqlCommand 对象命名空间:System.Data.SqlClient.SqlCommand;SqlCommand对象用于执行数据库操作,操作方式有三种: SQL语句:command.CommandType = Comma ndType.Text;存储过程:command.CommandType = CommandType.St or edP rocedu re;整张表:command.CommandTy

5、pe = Comma ndType.TableDirect;实例化一个SqlCommand对象SqlCommand command = new SqlCommandO; command.Connection 二 sqlCnt;/ 绑定 SqlConnection 对象或直接从SqlConnection创建SqlCommand command = sqlCnt .CreateCommand();常用方法: command.ExecuteNonQuery():返回受影响函数, 如增、删、改操作; command.ExecuteScalar():执行查询,返回首行首 列的结果; command.Ex

6、ecuteReader():返回一个数据流(SqlDataReade r 对象)。常用操作 执行SQLSqlCommand cmd = conn.CreateCommand();/创建 SqlCommand对象cmd.CommandType = CommandType.Tex t; cmd.CommandText 二select * from products = ID; /sql 语句 cmd.Parame ters.Add(ID, SqlDbType.I nt);cmd.ParametersID.Value = 1;/给参数 sql 语句的参数赋值 调用存储过程SqlCommand cmd

7、 = conn.Crea teCommand();cmd.CommandType = Sys tem.Da ta.CommandType.S to redProcedure; cmd.CommandTex t 二存储过程名; 整张表SqlCommand cmd = conn.Crea teCommand();cmd.CommandType = Sys tem.Da ta.CommandType.TableDirec t; cmd.CommandTex t 二表名5、SqlDataReader 对象命名空间:System.Data.SqlClient.SqlDataReader;SqlDataR

8、eader对象提供只读单向数据的功能,单向:只能依次读取下一条数据;只读:DataReader中的数 据是只读的,不能修改;相对地DataSet中的数据可以任意读取和修改.它有一个很重要的方法,是Read(),返回值是个布尔值,作用是前进到下一条数据,一条条的返回数据,当布 尔值为真时执行,为假时跳出。如SqlCommand command = new SqlCommandO; command.Connection 二 sqlCnt;command.CommandType = CommandType.Tex t; command.CommandText 二Select * from Users

9、;SqlDa taReader reader = command.Exec ut eReader();/执行SQL,返回一个“流” while (reader.ReadO)Console.Write(readerusername);/ 打印出每个用户的用户名6、DataSet 对象61 SqlDataAdapter;命名空间:System.Data.SqlClient.SqlDataAdapter;SqlDataAdapter 是 SqlCommand 和 DataSet 之间的桥梁,实例化 SqlDataAdapter 对象:SqlConnection sqlCnt 二 new SqlCon

10、nection(connectString); sqlCnt. Open();/ 创建 SqlCommandSqlCommand mySqlCommand = new SqlCommand(); mySqlCommand.CommandType = CommandType.Text; mySqlCommand.CommandText 二select * from product; mySqlCommand.Connection 二 sqlCnt;/ 创建 SqlDataAdapterSqlDataAdapter myDataAdapter = new SqlDataAdapter();myDa

11、taAdapter.SelectCommand = mySqlCommand; / 为 SqlDataAdapter 对 象绑定所要执行的SqlCommand对象上述SQL可以简化为SqlConnection sqlCnt 二 new SqlConnection(connectString); sqlCnt. Open();/隐藏了 SqlCommand对象的定义,同时隐藏了 SqlCommand对象与 SqlDataAdapter对象的绑定SqlDataAdapter myDataAdapter = new SqlDataAdapter(select * from product, sqlC

12、nt);属性和方法 myDataAdapter.SelectCommand 属性: SqlCommand变量,封装Select语句; myDataAdapter.InsertCommand 属性: SqlCommand变量,封装Insert语句; myDataAdapter.UpdateCommand 属性: SqlCommand变量,封装Update语句; myDataAdapter.DeleteCommand 属性: SqlCommand变量,封装Delete语句。 myDataAdapte r.fill():将执行结果填充到 Dataset 中, 会隐藏打开SqlConnection并执

13、行SQL等操作。62 SqlCommandBuilder;命名空间:System.Data.SqlClient.SqlCommandBuilder。对DataSet的操作(更改、增加、删除)仅是在本地修改,若要提交到数据库中则需要SqlCommandBuilder 对象。用于在客户端编辑完数据后,整体一次更新数据。具体用法如下:SqlCommandBuilder mySqlCommandBuilder = newSqlCommandBuilder(myDa taAdap ter); / 为 myDa taAdap ter 赋予 SqlCommandBuilder 功能myDataAdapter

14、.Update(myDataSet,表名“);/ 向数据库提交更改后的DataSet,第二个参数为DataSet中的存储表名,并非数据库中 真实的表名(二者在多数情况下一致)。6.3 DataSet命名空间:System.Data.DataSeto数据集,本地微型数据库,可以存储多张表。使用DataSet第一步就是将SqlDataAdapter返回的数据集(表)填充到Dataset对象中:SqlDataAdapter myDataAdapter = new SqlDataAdapter(select * from product, sqlCnt);DataSet myDataSet 二 new

15、 DataSet();/ 创建 DataSetmyDataAdapter.Fill(myDataSet, product);/ 将返回的数据集作为“表”填入DataSet中,表名可以与数据库真实的表名不同,并不影响后续的增、 删、改等操作SqlDataAdapter myDataAdapter = new SqlDataAdapter(select * from product, sqlCnt);DataSet myDataSet 二 new DataSet();myDa taAdap ter.Fill(myDa taSe t, produc t);DataTable myTable = myDataSet.Tablesproduct; foreach (DataRow myRow in myTable.Rows) foreach (DataColumn myColumn in myTable.Columns) Console.Wri teLine(myRo

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号