当前位置:嗨网首页>书籍在线阅读

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列表中。