ADO.NET是.NET对DataBase操作的相关类的集合。ADO.NET的名称起源于ADO(ActiveX Data Objects),这是一个广泛的类组,用于在以往的Microsoft技术中访问数据。
ADO.NET在处理数据时,可分为衔接式与断开式
ADO.NET涉及到的首要目标:
衔接目标:Connection
指令目标:Command
数据读取器目标:DataReader
数据适配器目标:DataAdapter
数据集目标: DataSet
下面是一个简略的ADO.NET衔接式拜访数据库的代码
- privatestaticvoidReadOrderData(stringconnectionString)
- {
- stringqueryString=
- "SELECTOrderID,CustomerIDFROMdbo.Orders;";
- //此处运用using来主动开释connection
- using(SqlConnectionconnection=
- newSqlConnection(connectionString))
- {
- SqlCommandcommand=
- newSqlCommand(queryString,connection);
- connection.Open();
- SqlDataReaderreader=command.ExecuteReader();
- //SqlDataReader的默许方位在***条记载前面。因而,有必要调用Read来开端拜访任何数据
- while(reader.Read())
- {
- Console.WriteLine(String.Format("{0},{1}",
- reader[0],reader[1]));
- }
- //封闭reader
- reader.Close();
- //关于SqlConnection的MARS形式封闭的情况下,一次只能翻开一个SqlDataReader,在***个封闭之前,翻开另一个的任何测验都将失利。别的,在reader不封闭之前,相同的command.ExecuteReader();将会失利(不管是否为MARS)
- }
- }
接下来对上面这段代码做一些阐明:
代码:
- Console.WriteLine(String.Format("{0},{1}",
- reader[0],reader[1]));
运用了reader的索引器,
索引器调用所的办法如下:
- overridepublicobjectthis[inti]{
- get{
- returnGetValue(i);
- }
- }
- overridepublicobjectthis[stringname]{
- get{
- returnGetValue(GetOrdinal(name));
- }
- }
(二)关于command的一些办法的阐明
ExecuteNonQuery 对衔接履行 Transact-SQL 句子并回来受影响的行数。 (重写 DbCommand..::.ExecuteNonQuery()()()。)
ExecuteReader 已重载。 将 CommandText 发送到 Connection 并生成一个 SqlDataReader。
ExecuteScalar 履行查询,并回来查询所回来的成果会集***行的***列。疏忽其他列或行。 (重写
DbCommand..::.ExecuteScalar()()()。)
ExecuteXmlReader 将 CommandText 发送到 Connection 并生成一个 XmlReader 目标。
(三)关于connectionstring
以下是常用的几种connectionstring
- //根本
- stringbaseconnstr="DataSource=myServerAddress;InitialCatalog=myDataBase;UserId=myUsername;Password=myPassword";
- //MARS
- stringmarsconnstr="DataSource=myServerAddress;InitialCatalog=myDataBase;UserId=myUsername;Password=myPassword;"
- +"MultipleActiveResultSets=true"
- //在app_data文件夹中的sqlexpress.mdf
- stringmdfDataDir="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf;Database=dbname;Trusted_Connection=Yes;"
- //运用SQL集群毛病搬运
- stringmirrorconnstr="DataSource=myServerAddress;FailoverPartner=myMirrorServerAddress;InitialCatalog=myDataBase;IntegratedSecurity=True;"
- //异步
- stringasynconnstr="Server=myServerAddress;Database=myDataBase;IntegratedSecurity=True;AsynchronousProcessing=True;"
MARS中,其实ADO.NET是对未封闭的sqlcommand挂起.所以datareader只能运用其各自的command实例.
【修改引荐】
- ADO.NET中的多数据表操作读取
- 浅谈ADO.NET中的五个首要目标
- 运用LINQ和ADO.NET创立Silverlight程序
- ADO.NET数据库衔接、操作SQL举例
- ADO.NET中简单混杂的概念
转载请说明出处
知优网 » 浅析ADO.NET的相关常识(ADO.NET的主要作用是什么)
知优网 » 浅析ADO.NET的相关常识(ADO.NET的主要作用是什么)