浅析ADO.NET的相关知识

ADO.NET在处理数据时,可分为连接式与断开式

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的新巴尔虎左网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

ADO.NET涉及到的主要对象:

连接对象:Connection

命令对象:Command

数据读取器对象:DataReader

数据适配器对象:DataAdapter

数据集对象: DataSet

下面是一个简单的ADO.NET连接式访问数据库的代码

 
 
 
  1. private static void ReadOrderData(string connectionString)  
  2. {  
  3.     string queryString =  
  4.         "SELECT OrderID, CustomerID FROM dbo.Orders;";  
  5. //此处使用using来自动释放connection  
  6.     using (SqlConnection connection =  
  7.                new SqlConnection(connectionString))  
  8.     {  
  9.         SqlCommand command =  
  10.             new SqlCommand(queryString, connection);  
  11.         connection.Open();  
  12.  
  13.         SqlDataReader reader = command.ExecuteReader();  
  14.  
  15.         // SqlDataReader 的默认位置在***条记录前面。因此,必须调用 Read 来开始访问任何数据  
  16.         while (reader.Read())  
  17.         {  
  18.             Console.WriteLine(String.Format("{0}, {1}",  
  19.                 reader[0], reader[1]));  
  20.         }  
  21.  
  22.         // 关闭reader  
  23.         reader.Close();  
  24. //对于SqlConnection的MARS模式关闭的情况下,一次只能打开一个 SqlDataReader,在***个关闭之前,打开另一个的任何尝试都将失败。另外,在reader不关闭之前,相同的command.ExecuteReader();将会失败(无论是否为MARS)  
  25.     }  

接下来对上面这段代码做一些说明:

代码:

 
 
 
  1. Console.WriteLine(String.Format("{0}, {1}",  
  2.                reader[0], reader[1]));  

使用了reader的索引器,

索引器调用所的方法如下:

 
 
 
  1. override public object this[int i] {  
  2.             get {  
  3.                 return GetValue(i);  
  4.             }  
  5.         }  
  6.    
  7.         override public object this[string name] {  
  8.             get {  
  9.                 return GetValue(GetOrdinal(name));  
  10.             }  
  11.         } 

 (二)关于command的一些方法的说明

ExecuteNonQuery 对连接执行 Transact-SQL 语句并返回受影响的行数。 (重写 DbCommand..::.ExecuteNonQuery()()()。)

ExecuteReader 已重载。 将 CommandText 发送到 Connection 并生成一个 SqlDataReader。 

ExecuteScalar 执行查询,并返回查询所返回的结果集中***行的***列。忽略其他列或行。 (重写

DbCommand..::.ExecuteScalar()()()。)

ExecuteXmlReader 将 CommandText 发送到 Connection 并生成一个 XmlReader 对象。 

(三)关于connectionstring

以下是常用的几种connectionstring

 
 
 
  1. //基本  
  2. string baseconnstr="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword";  
  3.  
  4.  
  5. //MARS  
  6. string marsconnstr="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;" 
  7.                     +"MultipleActiveResultSets=true"  
  8.  
  9.  
  10. //在app_data文件夹中的sqlexpress.mdf  
  11.  
  12. string mdfDataDir="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;" 
  13.  
  14.  
  15. //使用SQL集群故障转移  
  16. string mirrorconnstr="Data Source=myServerAddress;Failover Partner=myMirrorServerAddress;Initial Catalog=myDataBase;Integrated Security=True;" 
  17.  
  18. //异步  
  19. string asynconnstr="Server=myServerAddress;Database=myDataBase;Integrated Security=True;Asynchronous Processing=True;" 

MARS中,其实ADO.NET是对未关闭的sqlcommand挂起.所以datareader只能使用其各自的command实例.

网页标题:浅析ADO.NET的相关知识
浏览路径:http://www.shufengxianlan.com/qtweb/news27/293877.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联