using System.Data; using System.Data.SqlClient; //先打开两个类库文件 SqlConnection con = new SqlConnection(); con.ConnectionString = "server=.;database=stu;uid=sa;pwd=sa";
连接字符串,也可以
con.ConnectionString = ConfigurationManager.ConnectionStrings["xxx"].ConnectionString;
配合在web.config中配置实现
<ConnectionStrings> <add name="xxx" connectionString="Data Source=000.000.000.000;Initial Catalog=xxx;User ID=xxx;Password=xxx; pooling=true;" providerName="System.Data.SqlClient"/> <ConnectionStrings>
然后打开连接
con.Open();
接下来根据操作不同SqlDataAdapter和SqlCommand二选其一
ado.net数据访问有两种方式:
1.离线--通过DataSet,然后离线增,删,改,最后通过SqlDataAdapter解 析到数据库中
DataSet是离线的,而SqlDataAdapter是连接DataSet和数据库的桥梁,所有对DataSet的操作(填充,更新等)都要通过他。
即SqlDataAdapter+DataSet访问数据库
2.直接对数据库操作SqlCommand (Update,Insert,Delete)
二者之间的详细区分如下:
SqlCommand是命令,可以用它来执行SQL命令
SqlDataAdapter是数据适配器,是用于在数据源(数据库)和数据集(DataSet)之间通讯的一组对象
SqlCommand对应DateReader
SqlDataAdapter对应DataSet
SqlCommand是C#中与Sql数据库打交道的对象,几乎所有的Sql数据库操作都需要使用该对象来实现,但其功能有限,只是简单的实现了与Sql数据库的接口而已;
SqlDataAdapter是一个功能强大的SqL数据适配器,也用于操作Sql数据库,但它的操作都要通过SqlCommand来实现(有一个属性对象的类型就是SqlCommand),也就是说,可以把SqlDataAdapter看作是一个把一些特殊功能封装了、增强了的SqlCommand
SqlCommand与ADO时代的Command一样,SqlDataAdapter则是ADO.NET中的新事物,它配合DataSet来使用。
DataSet就像是驻留在内存中的小数据库,在DataSet中可以有多张DataTable,这些DataTable之间可以相互关联,就像在数据库中表关联一样
SqlDataAdapter的作用就是将数据从数据库中提取出来,放在DataSet中,当DataSet中的数据发生变化时,SqlDataAdapter再将数据库中的数据更新,以保证数据库中的数据和DataSet中的数据是一致的
如果只需要执行SQL语句,就没必要用到DataAdapter ,直接用SqlCommand的Execute系列方法就可以了。
sqlDataadapter的作用是实现Dataset和DataBase之间的桥梁:比如将对DataSet的修改更新到数据库。
SqlDataAdapter的UpdateCommand的执行机制是:
当调用SqlDataAdapter.Update()时,检查DataSet中的所有行,然后对每一个修改过的Row执行SqlDataAdapter.UpdateCommand
也就是说如果未修改DataSet中的数据,SqlDataAdapter.UpdateCommand不会执行。
例如使用SqlDataAdapter 对象,一般就要用于填充DataSet:
con.Open(); DataSet ds = new DataSet(); try { SqlCommand cmd = new SqlCommand(sql, Connection); SqlDataAdapter sda = new SqlDataAdapter(cmd); sda.Fill(ds); } catch (Exception e) { } finally { con.Close(); }
例如SqlDataReader 对象, 用于执行对数据库的直接一次性操作
using (SqlConnection con = new SqlConnection(s)) using (SqlCommand command = new SqlCommand("select * from xxx", con)) { con.Open(); command.Parameters.Add("@u", SqlDbType.Char).Value = uuu; SqlDataReader reader = command.ExecuteReader(); while(reader.Read()) { Console.WriteLine(reader["字段名"].toString()); ....... } }
最后关闭连接
con.Close();