ADO.NET 连接方式和非链接方式访问数据库
2018-06-18 02:45:40来源:未知 阅读 ()
一.//连接方式访问数据库的主要步骤(利用DataReader对象实现数据库连接模式)
1.创建连接对象(连接字符串)
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["XXX"].ConnectionString);
2.创建命令对象(设置Command对象的几个属性值)
SqlCommand scmd = new SqlCommand();
scmd.CommandText = sql;
scmd.CommandType = CommandType.StoredProcedure;
scmd.Connection = scon;
3.打开连接
con.Open();
4.发送命令
scmd.ExecuteNonQuery(); //增删改的时候
//scmd.ExecuteReader(); //查询的时候
//scmd.ExecuteScalar(); //返回第一行第一列的时候,使用
5.处理数据
//视情况而定。。。可有可无
6.关闭连接
scon.Close();
//非链接方式访问数据库(利用DataAdapter对象实现数据库断开模式)
1/创建连接对象
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["XXX"].ConnectionString);
2.创建数据适配器对象(数据适配器对象有四个选择命令:SelectCommand,UpdateCommand,DeleteCommand,InsertCommand,另外还有一个Fill()填充方法。里面可以填充DataTable或者DataSet对象)
SqlDataAdapter sda = new SqlDataAdapter("GetUserInfoByName", scon);
sda.SelectCommand.CommandType = CommandType.StoredProcedure;
3.打开连接
scon.Open();
//DataTable dt=new DataTable();
4.发送命令
sda.Fill(dt);
5.关闭连接
scon.Close();
二、两种连接方式优缺点
1、连接环境
优点:
环境易于实施安全控制
同步问题易于控制
数据实时性优于其他环境
缺点
必须保持持续的网络连接
扩展性差
2、非连接环境
中央数据存储的一部分数据可以被独立地复制与更改,在需要时可以与数据源中的数据合并
优点
可以在任何需要的时间进行操作,在必要时才连接到数据源
不独占连接
非连接环境的应用提高了应用的扩展性与性能
缺点
数据不是实时的
必须解决数据的并发性与同步问题
对于C/S结构,连接模式还是一个不错的模式,在B/S结构,或者分布式的环境中,还是使用断开模式比较好。一方面是扩展性比较好,另外一个方面是效率会比较高,相对于采用连接模式来说。这取决于Connection是否还是需要象在传统的C/S结构中使用单件模式创建一个共享的Connection,还是象在每一个页面都创建自己的Connection.
三、区别
SqlDataReader从字面上看数据读取,在读取数据的过程中一直与数据库保持连接,适合数据量小的情况,执行效率还是可以的。
SqlDataAdapter(数据适配器)可以说建立一个"本地数据库"--DataSet,先将数据取出来放到dataset中,然后就可以关闭数据库了,通过sqldataadapter还可以更新删除数据库中的东西,可以通过封装的Update等方法同步到数据库,这样服务器的资源消耗就少,可以同时支持更多并发的客户机。当然,这需要DataSet对象的支持和配合才能完成,这是ADO.NET的卓越之处。
两种模式都可以搭配DataSet和DataTable使用。
四、适用范围
1、连接
数据量小,系统规模不大、客户机和服务器在同一网络内的环境,只读的情况下优先选DataReader
2、非连接
适合网络数据量大、系统节点多、网络结构复杂,尤其是通过Internet/Intranet进行连接的网络。需要绑定数据远的情况下,需要修改数据同时更新到数据库(非连接)
注:没有那种模式是绝对的,根据自己的需要情况,各取所需,这样节省资源,提高效率,达到事半功倍的效果。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C语言数组指针的理解方式 2020-03-31
- C++ 枚举 2020-03-26
- qt连接mysql报错:QSqlDatabase: QMYSQL driver not loaded 2020-02-29
- C++ 模板详解(二):类模板的概念和基本使用方式 2020-02-11
- C++连接SQL 2019-11-21
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash