ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>天堂影院在线,亚洲一区二区三区高清不卡,国产黑人绿帽在线第一区http://www.aygfsteel.com/csssoft/category/40661.htmlIT高薪不是æ¢?!zh-cnTue, 07 Jul 2009 15:07:29 GMTTue, 07 Jul 2009 15:07:29 GMT60Ado.net中Connection对象用法http://www.aygfsteel.com/csssoft/archive/2009/07/07/285873.htmlIT˜q½æ±‚è€?/dc:creator>IT˜q½æ±‚è€?/author>Tue, 07 Jul 2009 14:42:00 GMThttp://www.aygfsteel.com/csssoft/archive/2009/07/07/285873.htmlhttp://www.aygfsteel.com/csssoft/comments/285873.htmlhttp://www.aygfsteel.com/csssoft/archive/2009/07/07/285873.html#Feedback0http://www.aygfsteel.com/csssoft/comments/commentRss/285873.htmlhttp://www.aygfsteel.com/csssoft/services/trackbacks/285873.html在ADO.NET对象模型中,Connection对象代表了与数据源之间的˜qžæŽ¥ã€?NET框架中有两个Connection对象åQšä¸€ä¸ªæ˜¯OleDbConnection,用于大多数的数据库连接,一个是SqlConnectionåQŒæ˜¯MS开发的专门用于针对SQL Server的连接。在创徏Connection对象之前åQŒä½ å¿…须先引用System.Data.OleDb或者System.Data.SqlClientå’ŒSystem.Data三个名空é—?/span>

1.Sqlserver 的数据库˜qžæŽ¥
        ä½ å¯ä»¥ä‹É用Connection对象的属性来指定数据源的位置å?qi¨¢ng)其它参数来˜qžæŽ¥æ•°æ®åº“。如åQšSqConnection conn=new SqlConnection("Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=database;use id=youuserName,password=yourpassword;");
        

        ˜q™æ˜¯˜qžæŽ¥åˆ°æœ¬åœ°æ•°æ®åº“åQŒå¦‚果你惌™¿žåˆ°ç½‘¾lœä¸Šçš„的数据库,ž®Þp¦åˆ©ç”¨é›†æˆå®‰å…¨æ€§ï¼ŒåŒæ—¶å¿½ç•¥ç”¨æˆ·åå’Œå¯†ç ã€‚如åQšSqConnection con=new SqlConnection("Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=database;Integrated Security=SSPI");

 

2.Oracle数据库的˜qžæŽ¥åQšï¼ˆå‰æåQšå¿…™åÕd…ˆå®‰è£…Oracle客户端实用工å…ïL(f¨¥ng)š„适当版本åQŒåƈ创徏数据库别名,接着ž®±å¯ä»¥ç”¨ä»¥ä¸‹çš„连接字½W¦ä¸²˜q›è¡Œ˜qžæŽ¥åQ?/span>

SqConnection con=new SqlConnection("Provider=MSDAORA;Data Source=dbAlias;User id=yourid,password=youpwd;);

3.Access数据库的˜qžæŽ¥åQšï¼ˆä½ å¯ä»¥ä‹É用以下连接字½W¦ä¸²æ¥è¿žæŽ¥ï¼‰

SqConnection con=new SqlConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\yourdb.mdb;User id=yourid,password=youpwd;);

˜qžæŽ¥åˆ°æ•°æ®åº“之后卛_¯è°ƒç”¨Connection对象的Open()æ–ÒŽ(gu¨©)³•来打开与数据库的连接,同理Close()æ–ÒŽ(gu¨©)³•用来关闭与数据库的连接ã€?/p>

˜qžæŽ¥æ± ï¼š(x¨¬)

      ˜qžæŽ¥æ± æ˜¯ä»€ä¹ˆï¼Ÿåœ¨ä¸€ä¸ªä¸‰å±‚结构中åQŒå½“一个客æˆïL(f¨¥ng)«¯ä¸Žä¸­é—´å±‚服务器进行通讯的时候,服务器会(x¨¬)创徏一个与数据库连接,òq¶æ‰§è¡Œæ“ä½œçš„业务对象åQˆä¹Ÿž®±æ˜¯ä¸Žæ•°æ®åº“˜qžæŽ¥çš„实例)åQŒåŒæ—¶ä¼š(x¨¬)创徏一ä¸?/font>Connection对象åQŒåœ¨æ”‘Öœ¨ä¸€ä¸ªæ± ä¸­ï¼ˆå®žé™…上是一个线½E‹ï¼‰ã€‚当释放˜q™ä¸ªå®žä¾‹çš„æ—¶å€™ï¼Œæ­¤å®žä¾‹ä¾¿å…³é—­åQŒæ­¤æ—¶åƈ没有真正的关闭数据连接,而是ž®†Connection对象标记为关闭后存储在池中。如果这时再来启动一个新的业务对象,˜q™æ—¶ž®×ƒ¼š(x¨¬)‹‚€(g¨¨)查现有的˜qžæŽ¥åQŒå¦‚果池中有打开的连接,即ä‹É用它åQŒå¦åˆ™å†åˆ›å¾ä¸€ä¸ªæ–°˜qžæŽ¥ã€?/font>

可能你会(x¨¬)觉得很奇怪,如果˜q™æ ·åQŒé‚£æ± ä¸­ä¸æ˜¯æœ‰å¾ˆå¤šçš„对象åQŒå²‚不是ä¼?x¨¬)浪费很多的资源åQŒè¿™ä¸ªé—®é¢˜çš„解决æ–ÒŽ(gu¨©)¡ˆæ˜¯ä½ å¯ä»¥è®„¡½®ä¸Žæ•°æ®åº“的特定连接时é—ß_(d¨¢)¼ˆé»˜è®¤60¿U’)åQŒå¦‚果在˜q™ä¸ªæ—‰™—´å†…未被ä‹É用,.NET提供ž®×ƒ¼š(x¨¬)关闭此连接ã€?/font>

      å¦‚何打开˜qžæŽ¥æ± ï¼Ÿé»˜è®¤æƒ…况下是打开çš?

      å¦‚何关闭˜qžæŽ¥æ± ï¼Ÿå¯ä»¥ä½¿ç”¨OleDbConnection.ReleaseConnectionPool()æ–ÒŽ(gu¨©)³•来关闭连接池åQŒæ›´æˆ–者你可以在OåQ¬ï×I åQ¤ïð‡˜qžæŽ¥å­—符串中加上OLE DB Services= - 4;在用SqlConnection对象时可在连接符中加上Pooling=False。这时你再调用Close()时候便ä¼?x¨¬)真正地关闭与数据库的连接ã€?/p>

åQˆæ³¨1åQšå¯ä»¥ä‹É用SåQ±ï¼¬äº‹äšg探查器或性能监视器来观察˜qžæŽ¥åˆ°æ•°æ®åº“中的˜qžæŽ¥æ•°ç›®åQŒä»¥è¯†åˆ«˜qžæŽ¥æ˜¯å¦çœŸæ­£å…³é—­æˆ–是只是攑օ¥æ± ä¸­ã€‚)

åQˆæ³¨2åQšå¯ä»¥æ˜¾å¼è°ƒç”¨Dispose()æ–ÒŽ(gu¨©)³•在垃圾收集器回收之前释放资源åQŒä½†å¦‚果你只是将Connectionå¯¹è±¡è®¾äØ“(f¨´)åQ®ï¼µåQ¬ï¼¬çš„话åQŒæ˜¯ä¸ä¼š(x¨¬)断开与数据源的连接的åQ?/p>

      åˆ©ç”¨Connection对象来创建Command对象åQ?ADO.NET中用Command对象来执行数据查询,更新åQ‰ä¾‹ã€€åQ?/p>

SqConnection con=new SqlConnection("Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=database;Integrated Security=SSPI");

using (OleDbCommand cmd=con.CreateCommadn())

{

      cmd.CommandText="select * from table";

      cmd.ExecuteNonQuery();

}

(注:(x¨¬)此处使用using 的好处是在进行此‹Æ¡æ“ä½œåŽä¾¿å¯é‡Šæ”¾èµ„源ã€?

利用Connection对象来创建Transaction对象åQ?Transaction对象是ADO.NET中的事务½Ž¡ç†å¯¹è±¡åQ?/font>

例:(x¨¬)

SqConnection con=new SqlConnection("Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=database;Integrated Security=SSPI");

con.Open();

OleDbTransaction tran=con.BeginTransaction(); (注:(x¨¬)调用此方法会(x¨¬)在连接时˜q”回一个新的打开的Transaction对象来进行事务管理)

(注:(x¨¬)事务是指一¾l„单一实体˜qè¡Œçš„语句,可以¼‹®ä¿æ•°æ®çš„完整性,防止因系¾lŸæ•…障或其它原因而引èµïL(f¨¥ng)š„æ•°æ®ä¸¢å¤±ã€‚概念很抽象åQŒå‘µå‘µï¼Œçœ‹ä¸‹åŽÕd°±æ˜Žç™½äº†ï¼‰

事务有AåQ£ï¾ƒåQ¤å››ä¸ªå±žæ€§ï¼ˆå›_ŽŸå­æ€§ï¼Œä¸€è‡´æ€§ï¼Œéš”ç¦»æ€§ï¼ŒæŒä¹…æ€§ï¼‰åQ?/font>

原子æ€?/font>指在执行事务˜q‡ç¨‹ä¸­ï¼Œ˜q™ä¸ª˜q‡ç¨‹è¦ä¹ˆæˆåŠŸæ‰§è¡ŒåQŒè¦ä¹ˆä¸æ‰§è¡Œã€?/font>

一致æ€?/font>指事务前和事务后的数据的一致性,也就是如果事务成功执行的话,¾pȝ»Ÿž®Þp¿”回成功的状态,åÏx‰€æœ‰æ•°æ®çš„æ”¹å˜æ ‡è®°ä¸ºå·²å®ŒæˆåQŒå¦‚没完成事务,卛_›žæ»šï¼Œòq¶å›žåˆ°å…ˆå‰çš„合法状态ã€?/font>

隔离æ€?/font>指一个事务内的ä“Q何变化都独立于其它的事务åQˆç›¸å¯¹äºŽä¸¤ä¸ªäº‹åŠ¡çš„è¯´æ³•ï¼‰

持久æ€?/font>æŒ‡äº‹åŠ¡æ˜¯æŒç®‹çš„ï¼Œä¹Ÿå°±æ˜¯äº‹åŠ¡æˆåŠŸå®ŒæˆåŽçš„æ”¹å˜æ˜¯æ°æ€¹…çš„ã€?br />
其他详细使用可以参照MSDN



]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º ¿Æ¼¼| ÓÜÊ÷ÊÐ| ÉñÄ¾ÏØ| º£°²ÏØ| ʯ¾°É½Çø| ãòÎ÷ÏØ| áéÖÝÊÐ| ÏĽòÏØ| â¿µÏØ| ɯ³µÏØ| ¿Ë¶«ÏØ| ÕÐÔ¶ÊÐ| ·ð¸ÔÏØ| ³Ç¹ÌÏØ| ¼Ó²éÏØ| Î÷²Ø| Óí³ÇÊÐ| Û²³ÇÏØ| ¾Å½­ÊÐ| ÏĽòÏØ| ÓàÒ¦ÊÐ| ËÕÄáÌØ×óÆì| Ò¶³ÇÏØ| ÄáÂêÏØ| ÄÚÏçÏØ| ¸§Ô¶ÏØ| ÆÁ¶«ÊÐ| °¢ºÏÆæÏØ| °²Ë³ÊÐ| ³£É½ÏØ| Çì³ÇÏØ| ¶¼²ýÏØ| ÐÇ×ù| ãÏÖÐÊÐ| ·¿É½Çø| Óí³ÇÊÐ| º£Ô­ÏØ| °ÝÈªÏØ| ÕÄÖÝÊÐ| ¶«Æ½ÏØ| Ñô´ºÊÐ|