首页 > 代码库 > ADO.NET学习笔记-链接到Data Store
ADO.NET学习笔记-链接到Data Store
1. 使用数据提供程序(Providers)移动数据
.NET默认包含的数据提供程序有以下4种:
- OleDb
- odbc
- SQL Server
- Oracle
2.DbConnection对象
要获取数据,首先要有一个合法可用的数据链接(Connection),数据链接的抽象类为DbConnection,再由数据提供程序的不同继承生成对应的具体数据链接类,如SqlConnection(Sql Server), MySqlConnection(MySql)等。打开/关闭一个链接的示例代码如下(SQL SERVER):
var connection = new SqlConnection();connection.ConnectionString = "Server=.;Database=Northwind;Trusted_Connection=true";connection.Open(); //Do lots of cool work hereconnection.Close();常用的关闭数据链接的方法有两个,一个是使用Close()方法,另一个是使用Using语句块,一般认为使用后者更好一些,一是你可以不用显示的调用Close()方法来关闭链接(经常会忘),二是如果有异常抛出,即使无法执法Close()语句,依然可以正常的关闭链接。
3. ConnectionString属性
设置ConnectionString属性是建立链接最难的一个环节,还好我们有VS工具等可以很直观的生成链接字符串。设置好链接字符串后,我们一般需将其保存在本地计算机中,这样即使链接字符串出现变化,我们也不必再次编译程序。在示例程序中,App.config文件中即包含了链接字符串内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="TestApp.Properties.Settings.toucaiConnectionString"
connectionString="server=mytoucai.mysql.rds.aliyuncs.com;user id=lqs2011;password = gdz840928;persistsecurityinfo=True;database=toucai"
providerName="MySql.Data.MySqlClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
从文件中读取链接字符串并打开链接的示例代码如下:
using System.Configuration;
static void Main()
{
var conString = ConfigurationManager.ConnectionStrings["TestApp.Properties.Settings.toucaiConnectionString"].ConnectionString;
var conn = new MySqlConnection(conString);
var cmd = conn.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select count(*) from product";
conn.Open();
long count = (long)cmd.ExecuteScalar();
Console.WriteLine("共有" + count + "条商品条记录");
conn.Close();
}
这段代码在执行时,如果App.conifg文件中的内容,如connectionString或name的属性值设置有误,则程序将抛出异常。另需注意的是需在引用中加入System.Configuration的引用,而不是仅仅加上using语句。
4. 到MySQL的加密通讯
此方面的内容还需查阅资料,但非常重要。
5. 链接池
考虑到建议一个到数据库的物理链接的开销巨大,ADO.NET使用了链接池机制来重用先前已建立的链接。系统默认的链接池设置已经够用,一般我们无需再自行设置。
链接池位于客户端,而不是服务器端。
链接池中链接的生命周期是有限的,通常为几分钟,如要保证链接池中的链接至少有N个有用,则可把Min Pool Size属性设置为N
在查找BUG时,可以暂时关闭链接池(链接字符串中的Pooling = false)
服务器重启后,链接池中的链接可能失效,于是我们需要运行DBConnection的静态方法ClearPool()或ClearAllPools()来清空链接池中的链接,以避免抛出异常。
ADO.NET学习笔记-链接到Data Store
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。