ADO.NET简述

Ado.net连接数据库包括两种方式,一种是不断开连接的查询,主要是采取的Command对象+DataReader对象的方式,需要打开和关闭数据库连接;另一种是断开连接的查询,主要采取的是DataAdapter对象+DataSet对象的方式,不需要打开和关闭连接----

--首先,两种方式均需要使用Connection对象,建立数据库的连接,用法如下,

              

 数据库连接字符串:string connString=“server=.;database=TestDB;uid=sa;pwd=sa”;

 或者,在web.config中配置,

 <connectionStrings><add name="conn" connectionString="server=.;database=TestDB;uid=sa;pwd=sa" /> </connectionStrings>

 数据库连接字符串:string connectionString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;

 创建connection对象:SqlConnection connection=new SqlConnection(connString);//SqlConnection在System.Data.SqlClient命名空间下

 打开连接:connection.open();

 关闭连接:connection.close();

 

 --接下来,对于连接式的查询,使用Command对象,执行SQL操作,用法如下,

          

 ExecuteNoQuery执行不返回值的操作,如增删改操作: string sql="delete from stu where stuid=3";

                                            SqlCommand command=new SqlCommand(sql,connection);

                                            command.ExecuteNoQuery();

 ExecuteScalar执行返回单个值得操作,如统计操作:  string sql="select count(*) from stu ";
 
                                            SqlCommand command=new SqlCommand(sql,connection);

                                             int count=Convert.ToInt32(command.ExecuteScalar());//ExecuteScalar返回值object类型,需要类型转换

ExecuteReader执行查询操作,返回结果给Datareader:string sql="select * from stu ";

                                             SqlCommand command=new SqlCommand(sql,connection);

                                             SqlDataReader da=command.ExecuteReader();

 

 -- 然后,使用DataReader对象读取查询到的记录,用法如下,

         

 Read方法逐行返回记录:SqlDataReader da=command.ExecuteReader();//SqlDataReader在System.Data.SqlClient命名空间下

                    while(da.Read()){  Console.WriteLine((string)da['''StuName']); //返回“”StuName"列数据  }

                    da.Close(); //关闭DataReader对象

 

  --接下来,是断开式的查询,断开式的查询主要是通过DataAdapter这个填充器填充内存中的Dataset数据集对象,DataSet数据集对象是由一堆内存中的Datatable表组成的,每个表对应着从数据库中取出来的数据表,适合大批量的数据一次查询进内存的情况,用法如下:

             

DataSet ds = new DataSet();//DataSet在System.Data命名空间下

SqlDataAdapter da = new SqlDataAdapter(command);//SqlDataAdapter在System.Data.SqlClient命名空间下
da.Fill(ds);
return ds.Tables[0];//返回数据集中的第一张表

 

补充,SqlParameter,通过设置Parameter参数实现参数化查询,用来设置存储过程参数和来防止sql注入攻击等,用法如下:

String sql=“select count(*) from stu where id=@id”;
SqlParameter[] parameters={ 
                  new SqlParameter{"@id",SqlDbType.int,4} }//设置参数类型                                          }
parameters[0].Value=id//设置参数值

 

 

                                                                                                        

                                

   

   

            

posted @ 2017-12-26 18:07  ForceBaker  阅读(478)  评论(0编辑  收藏  举报