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

09-连接模式下更新数据

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

18.3.2 连接模式下更新数据

Command对象的ExecuteNonQuery方法执行对数据的更新操作,并返回受影响的记录行数。

【范例18-6】 使用ExecuteNonQuery方法更新数据源数据。

(1)在Visual Studio 2013中打开Windows应用程序项目“slipmanage”。

(2)为Slipway类添加如下的addSlipway和updateSlipway方法(代码18-6-1.txt)。

01  public int addSlipway(Slipway slipway)      // 添加slipway对象
02  {
03          string csql = "insert into Slipway values ( '" + slipway.name + " '," + slipway.volume + ")";
04          SqlCommand cmd = new SqlCommand();
05          using (SqlConnection conn = new SqlConnection(Conn.conn))  {
06                  if (conn.State != ConnectionState.Open)   conn.Open();
07                          cmd.Connection = conn;       
08                          cmd.CommandText = csql;  // cmd属性赋值
09                          int val = cmd.ExecuteNonQuery();
10                          return val;   }  //返回执行结果,如返回1,表明添加成功
11          }
12  public int updateSlipway(Slipway slipway)   // 更新slipway对象
13  {                                           // 清除原来停靠在slipway上船只的船台号码信息
14          string sqlclear="update Boat set slipwayNo=NULL, validity=NULL where slipwayNo="+ lipway.id;
15          using (SqlConnection conn = new SqlConnection(Conn.conn))   {
16                  SqlCommand cmd = new SqlCommand();
17                  cmd.Connection = conn;      // cmd属性赋值
18                  cmd.CommandText = sqlclear;
19                  cmd.ExecuteNonQuery();   }
20          foreach (Boat boat in slipway.Boat){ // 更新最新停靠在slipway上船只的船台号码信息
21                  string sqladd = "update Boat set slipwayNo  = " + slipway.id + ", validity =NULL  where  stateRegistrationNo = '" + boat.StateRegistrationNo + "'";
22                  SqlCommand cmd = new SqlCommand();
23                  using (SqlConnection conn = new SqlConnection(Conn.conn))    {
24                          cmd.Connection = conn;       
25                          cmd.CommandText = sqladd;   // cmd属性赋值
26                          int val = cmd.ExecuteNonQuery();      }
27                  if (val == 0)  return -1;
28          }
29          return 1;
30  }

【代码详解】

上例Slipway类中的addSlipway方法用来往数据库的船台信息表slipway中添加已有船台信息(通过参数slipway传递)。updateSlipway方法用来更新特定船台(通过参数slipway传递)的停靠船只信息,它先清除该船台原来停靠船只的船台信息,再把该船台最新停靠船只的船台信息依次更新为该船台号码。updateSlipway方法中的下面这条SQL语句:

string sqlclear="update Boat set slipwayNo=NULL, validity=NULL where slipwayNo="+ lipway.id;

用来清除该船台原来停靠船只的船台信息。updateSlipway方法中的下面这条语句:

foreach (Boat boat in slipway.Boat)

用来依次更新该船台最新停靠船只的船台信息,并由程序中的下面这条SQL语句:

string sqladd = "update Boat set slipwayNo  = " + slipway.id + ", validity =NULL  where  stateRegistrationNo = '" + boat.StateRegistrationNo + "'";

实现更新操作。