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的代码:

 using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;
AttachDBFilename=|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");//根据列的名字得到列的序号.

                        }

                    } 

参考资料:SqlDataReader用法:http://wenku.baidu.com/view/4788e53c87c24028915fc316.html

                  SqlDataReader的应用:http://wenku.baidu.com/view/cd78202f453610661ed9f459.html

 

总结:ADO.Net的四个对象:

ADO.Net四个对象小结_第1张图片

 

 

        SqlConnection数据源连接对象,主要负责连接数据库。

        SqlCommand命令对象,主要负责生产SQL语句,进行增,删,改,查询操作。

        SqlDataReader 数据流读取器,主要负责读取数据库中的数据

        SqlDataAdapter适配器对象,是DataSet和SQL直接的桥接器,主要负责Command对象执行完SQL语句后生产并填充DataSet和DataTable,而DataSet主要负责存取和更新数据。

 

 

 

 

 

你可能感兴趣的:(ADO.Net四个对象小结)