主頁 > 知識庫 > 數據庫 > MySQL >

MySql多表循環遍歷更新

來源:中國IT實驗室 作者:佚名 發表于:2013-07-10 11:15  點擊:
MySql數據庫中存在大量的表結構,而且這些表都存在一個共同點,就是表中都有相同字段,比如 id,name,city,adress,lat,lng。表中字段id,name,city,adress不允許為空,所以表中這幾個字段的數據都是已 經賦給實值的,而lat與lng(經緯度)是為空的。現在要寫一個
MySql數據庫中存在大量的表結構,而且這些表都存在一個共同點,就是表中都有相同字段,比如 id,name,city,adress,lat,lng。表中字段id,name,city,adress不允許為空,所以表中這幾個字段的數據都是已 經賦給實值的,而lat與lng(經緯度)是為空的。現在要寫一個程序,根據city,adress請求獲取數據,把循環每一表中根據 city,adress請求獲取的數據更新到相應表,相應表中對應的那一行數據。這句話,可能你有點暈,說白了就是,先循環查詢遍歷表中city與 adress的值,根據city,adress的值請求獲取數據,更新到相應行中,這個表循環更新完了就跳到下個表中再循環更新,以此類推,直到全部更 新。。。
  這是我們做的一個程序,當時我還天真的以為手動輸入city和adress請求獲取更新,誰不曾料想數據庫表中的數據有好幾萬條,要是手動累死 你吧,呵呵。。。所以這個程序思想也是從我們同事那獲取到的,很有用,我也是在不斷學習當中,發表出來供大家參考,資源共享才能更好的進步!!!
  MySql數據庫的連接字符串是:
  string MySqlString = "Host=ip地址;Port=端口號;User id=用戶名;pwd=密碼;Database=數據庫名;Character Set=utf8"
  第一步,
  連接數據庫,寫個根據city,adress請求獲取數據的查詢方法,傳個參數(數據庫的表名),如Get_Data(string tablename)
  查詢語句:
  string MySqlSelect = "select id,city,address,lat,lng from " + tablename;
  然后調用ExecuteReader()方法將值傳出去,注意:表中這幾個字段應該先建立一個model類(這里不細說,大家都懂,就是get{}set{}),方便傳值
  using (MySqlDataReader dataReader = Command.ExecuteReader())
  {
  while (dataReader.Read())
  {
  DataModel dataModel = new DataModel();
  dataModel.Id = dataReader["id"].ToString();
  dataModel.City = (string)dataReader["city"];
  dataModel.Address = (string)dataReader["address"];
  if (dataReader["latitude"] != DBNull.Value)
  {
  dataModel.Latitude = (decimal)dataReader["latitude"];
  }
  else
  dataModel.Latitude = 0.0M;
  if (dataReader["longitude"] != DBNull.Value)
  {
  dataModel.Latitude = (decimal)dataReader["longitude"];
  }
  else
  dataModel.Latitude = 0.0M;
  dataSource.Add(dataModel);
  }
  dataReader.Close();
  dataReader.Dispose();
  }
  第二步,
  那就是更新方法了,從查詢到的數據,循環遍歷表名更新。更新方法中有四個參數,根據city,adress查詢出來的id,數據庫的表名,以及 要更新的字段lat,lng。如Update_Data(string id, string dataTable, decimal lat, decimal lng)
  更新語句:
  string MySqlUpdata = "update " + dataTable + " set latitude=" + lat + ",longitude=" + lng + " where id=" + id;
  然后執行ExecuteNonQuery()方法,返回受影響的行數。

有幫助
(0)
0%
沒幫助
(0)
0%
欧美多p性群交换