ADO.NET MSSSQLServer 操作简要总结
1)、数据库操作首先应该是链接,链接的方式有多种,不论怎样实现最终都是把链接字符串赋值给实现了 继承自DbConnection 类的SqlConnection类实例的ConnectionString属性;
2)、链接后就是执行操作,创建继承自DbCommand类的子类对象SqlCommand,将上面创建的Connection对象传递给SqlCommand对象 ,将要执行的sql语句传递给其CommandText属性;参数利用SqlCommand对象的SqlParameterCollection类型的Parameters属
性的一系列Add或AddWithValue方法添加参数(如果是通过接口 IDbConnection、IDbCommand、IDataReader建立不同数据库的操作可以用DbProviderFactories解除依赖关系);
3)、打开连接对象;
4)、操作:
- 使用Command对象的ExecuteNonQuery方法执增、删、改行并返回受影响行数;
- 使用Command对象的ExecuteScalar查询单个数据
- 查询只说DataReader,关于DataReader与DataSet的之类的东西可以搜出很多;之后使用只有一个有internal修饰的构造函数SqlDatareader(继承自DbDataReader)的实例变量接收SqlCommond对象 ExecuteReader方法执行后返回的SqlDataReader类型的对象;最后使用循环取出DataReader中的数据;
5)、最后是关闭、销毁此次链接。
1 string conStr = "server=xx;database=xx;User id=xx;pwd=xx"; 2 SqlConnection con = new SqlConnection(conStr); 3 string sqlStr = ""; 4 5 //SqlCommand cmd = new SqlCommand(sqlStr, con); 6 SqlCommand cmd = new SqlCommand(); 7 cmd.Connection = con; 8 cmd.CommandText = sqlStr; 9 cmd.Parameter.Add("@",xxxx); 10 //cmd.Parameters.AddWithValue("@",xxxx); 11 12 con.Open(); 13 14 //int nums=cmd.ExecuteNonQuery(); 15 // var value=cmd.ExecuteScalar(); 16 17 SqlDataReader dr = cmd.ExecuteReader(); 18 if (dr.HasRows) 19 { 20 while (dr.Read()) 21 { 22 23 } 24 } 25 26 dr.Close(); 27 con.Close(); 28 con.Dispose();
DataReader读取数据速度很快,有很多条数据时对内存的影响也是很少的,只能向前读取等;对于应用程序来说数据库操作是很平常的事,尤其是数据的展示,我写的ASP.Net程序中目前的操作中读取数据基本都是DataReader,因为开始只知道使用SqlDataAdapter,自己玩什么因素都发现不了,不适用这个东西,并不是不好,使用什么还得看应用的地方和自己的爱好。
2013/12/18