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;
- 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");//根据列的名字得到列的序号.
}
}
参考资料:SqlDataReader用法:http://wenku.baidu.com/view/4788e53c87c24028915fc316.html
SqlDataReader的应用:http://wenku.baidu.com/view/cd78202f453610661ed9f459.html
总结:ADO.Net的四个对象:
SqlConnection数据源连接对象,主要负责连接数据库。
SqlCommand命令对象,主要负责生产SQL语句,进行增,删,改,查询操作。
SqlDataReader 数据流读取器,主要负责读取数据库中的数据。
SqlDataAdapter适配器对象,是DataSet和SQL直接的桥接器,主要负责Command对象执行完SQL语句后生产并填充DataSet和DataTable,而DataSet主要负责存取和更新数据。