ADO.NET的数据库操作流程如下:
1、建立数据库连接,包含连接对象(sqlconnection)、连接字符串、打开连接三个步骤。
2、执行命令,包含命令对象(sqlcommand)、sql语句、打开的连接对象
3、返回结果,包含两种情况,一是返回SqlDataReader对象,一是返回DataSet对象
抽水的流程大致如下:
<!–[if !supportLists]–>1、 <!–[endif]–>确定水龙头的连接方向
<!–[if !supportLists]–>2、 <!–[endif]–>接水龙头
<!–[if !supportLists]–>3、 <!–[endif]–>发动抽水机
<!–[if !supportLists]–>4、 <!–[endif]–>接水管
<!–[if !supportLists]–>5、 <!–[endif]–>准备水池来存放水
<!–[if !supportLists]–>6、 <!–[endif]–>把水管中的水输到水池中
<!–[if !supportLists]–>7、 <!–[endif]–>抽完水,关水龙头
<!–[if !supportLists]–>8、 <!–[endif]–>停止抽水机
9、 拆水管
下面用对比的方法来形象地理解每个对象的作用
1、数据库好比水源,存储了大量的数据。
2、Connection好比伸入水中的进水笼头,保持与水的接触,只有它与水进行了“连接”,其他对象才可以抽到水。
3、Command则像抽水机,为抽水提供动力和执行方法,通过“水龙头”,然后把水返给上面的“水管”。
4、DataAdapter、DataReader就像输水管,担任着水的传输任务,并起着桥梁的作用。二者是有不同的,后面章节中将详细介绍。
5、DataSet则是一个大水库,把抽上来的水按一定关系的池子进行存放。即使撤掉“抽水装置”(断开连接,离线状态),也可以保持“水”的存在。这也正是ADO.NET的核心。
6、DataTable则像水库中的每个独立的水池子,分别存放不同种类的水。一个大水库由一个或多个这样的水池子组成。
编码实现如下:
//数据库连接字符串 --确定水龙头连接的方向
string strCon = "Data source=.;Initial Catalog=db;User ID=abc;Password= ";
string strSql = "select UserCode,UserName,DivisionCode from UserMas";
//定义连接对象 --接水龙头
SqlConnection conn = new SqlConnection(strCon );
//打开连接对象 --开水龙头
conn.Open();
//实例化SqlCommand对象来执行sql语句 --发动抽水机
SqlCommand comm = new SqlCommand(strSql,conn);
//实例化SqlDataAdapter对象来把数据源引到myDa --接水管
SqlDataAdapter myDa = new SqlDataAdapter(comm);
//实例化DataSet来存放数据源 --准备水池来储水
DataSet Ds = new DataSet();
//用myDa填充Ds --把水管的水存到水池
myDa.Fill(Ds);
//关闭连接对象 --抽完水,关水龙头
conn.Close();
//关闭comm对象 --停止抽水机
comm.Dispose();
//关闭Da对象 --拆水管
myDa.Dispose();