当前位置:编程学习 > asp >>

ADO.Net四个对象小结

ADO.Net四个对象小结       
        ADO.Net 是什么,它是做什么用的?
        ADO.Net:程序和数据库交互要通过ADO.Net进行,通过ADO.Net就能在程序中执行SQL了。ADO.Net中提供了各种不同数据库的统一操作接口。
        直接在项目中内嵌mdf文件的方式使用SQLServer数据库(基于服务的数据库)。mdf文件随着项目走,用起来方便,和在数据库服务器上创建数据库没什么区别,运行的时候会自动添加(Attack)。
 
ADO.NET的四个对象
(1)SqlConnection对象
        连接字符串:程序通过连接字符串 指定连接哪台服务器上的、哪个实例的哪个数据库、用什么用户名密码等。
        项目内嵌mdf文件形式的连接字符串:
"DataSource=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\Database1.mdf;IntegratedSecurity=True;User Instance=True"。“.\SQLEXPRESS”表示“本机上的SQLEXPRESS实例“,则需要修改。”Database1.mdf“为mdf文件名。
        ADO.Net中通过SQLConnection类创建到SQLServer的连接,SqlConnection代表一个数据库连接,ADO.Net中的连接等资源都实现了IDisPosable接口,可以使用using进行资源管理。
示例:连接SQlServer的代码:
[csharp]  
using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;  
ttachDBFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"))  
           {  
               conn.Open();          
           }  
 
(2)SqlCommand对象
SqlCommand表示向服务器提交一个命令(SQL语句等)
CommandText属性为要执行的SQL语句。
SqlCommand的主要方法:
(a)ExecuteNonQuery方法执行一个非查询语句(Update、Insert、Delete等),返回值是执行的影响的行数。
示例:执行简单的Insert语句
 using (SqlCommandcmd = conn.CreateCommand())
                {
                    cmd.CommandText = "Insert into MyTAble1(Name)values('abc')";
                    cmd.ExecuteNonQuery();       //执行一个非查询语句
                }
        (b)ExecuteScale方法用于执行查询,并返回查询所返回的结果集中的第一行的第一列,因为不能确定返回值的类型,所以返回值是Object类型。
cmd.CommandText= "select count(*)from T_Users";
int i = Convert.ToInt32(cmd.ExecuteScalar());
 
        (c) ExecuteReader方法,执行返回一个结果集(多行多列数据)的语句。
using(SqlDataReader reader =cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            Console.WriteLine(reader.GetString(1));
                           
                        }
                    }
(3)SqlDataReader对象
         若要创建SqlDataReader,必须调用SqlCommand对象的ExecuteReader方法,而不能直接使用构造方法。
         语法:SqlDataReader sdr=cmd.ExecuteReader();
         SqlDataReader对象的GetString、GetInt32等方法只接受整数参数,也就是序号,用GetOrdinal方法根据列名动态得到序号。
 
 
 
         DataReader对象只提供只读单项的快速传递,单向您只能依次读取下一条数据;只读DataReader中的数据是只读的,不能修改;相对地,DataSet中的数据可以任意读取和修改。
举例:
using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            //Console.WriteLine(reader.GetString(1));
                            Console.WriteLine(reader.GetString(reader.GetOrdinal("UserName")));
                            //reader.GetOrdinal("UserName");//根据列的名字得到列的序号.
                        }
                    } 
 
 
总结:ADO.Net的四个对象:
SqlConnection数据源连接对象。
SqlCommand命令对象,进行增,删,改,查询操作。
SqlDataAdapter适配器对象。
SqlDataReader 数据流读取器。
补充:Web开发 , ASP.Net ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,