11-非连接模式下读取数据
18.4.1 非连接模式下读取数据
DataAdapter对象的Fill方法执行后把检索数据填充到DataSet对象中,由DataSet对象中的Table对象存储读取的记录数据。
【范例18-7】 使用DataSet对象读取记录数据。
(1)在Visual Studio 2013中打开Windows应用程序项目“slipmanage”。
(2)更改【范例18-6】Slipway类中的getAllSlipway方法,代码如下(代码18-7-1.txt)。
01 public List<Slipway> getAllSlipway()
02 {
03 string sql = "select * from slipway ";
04 SqlDataAdapter da = new SqlDataAdapter(sql, Conn.conn);
05 DataSet sqlread = new DataSet();
06 da.Fill(sqlread);
07 DataTable dt = sqlread.Tables[0];
08 if (dt.Rows.Count>0)
09 {
10 List<Slipway> slipwayList = new List<Slipway>();
11 for (int i = 0; i < dt.Rows.Count;i++ ) //获取所有的slipway,并返回slipway列表
12 {
13 Slipway slipway = new Slipway();
14 slipway.id = int.Parse(dt.Rows[i]["id"].ToString());
15 slipway.name = dt.Rows[i]["name"].ToString();
16 slipway.volume = int.Parse(dt.Rows[i]["volume"].ToString());
17 slipway.Boat = InSlipway(slipway);
18 slipwayList.Add(slipway);
19 }
20 return slipwayList;
21 }
22 return null;
23 }
【代码详解】
与【范例18-6】一样,上述Slipway类中的getAllSlipway方法用来实现从数据库的船台信息表slipway中检索出所有船台信息,并把检索出的船台信息放到一个Slipway类型的列表中。通过执行SQL语句“select * from slipway ”检索船台信息,程序中下面的语句:
SqlDataAdapter da = new SqlDataAdapter(sql, Conn.conn);
DataSet sqlread = new DataSet();
da.Fill(sqlread);
DataTable dt = sqlread.Tables[0];
通过调用DataAdapter对象da的Fill方法把检索数据填充到DataSet对象sqlread中,并通过Table对象dt访问。程序中的下面这条语句:
List<Slipway> slipwayList = new List<Slipway>();
用于创建一个Slipway类型列表slipwayList,并通过for循环中的下面这条语句:
slipway.id = int.Parse(dt.Rows[i]["id"].ToString());
把填充到sqlread对象的dt表中的每行记录的ID信息提取出来,赋值给slipway对象。每处理完一行记录,就会得到一个读取的slipway对象,通过for循环中的下面这条语句:
slipwayList.Add(slipway);
把读取的slipway对象加入到slipwayList列表中。