最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

MySQL多表循環(huán)遍歷更新

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-09 10:45:54
文檔

MySQL多表循環(huán)遍歷更新

MySQL多表循環(huán)遍歷更新:MySql數(shù)據(jù)庫中存在大量的表結(jié)構(gòu),而且這些表都存在一個共同點(diǎn),就是表中都有相同字段,比如id,name,city,adress,lat,lng。表中字 MySql數(shù)據(jù)庫中存在大量的表結(jié)構(gòu),而且這些表都存在一個共同點(diǎn),就是表中都有相同字段,比如id,name,city,adr
推薦度:
導(dǎo)讀MySQL多表循環(huán)遍歷更新:MySql數(shù)據(jù)庫中存在大量的表結(jié)構(gòu),而且這些表都存在一個共同點(diǎn),就是表中都有相同字段,比如id,name,city,adress,lat,lng。表中字 MySql數(shù)據(jù)庫中存在大量的表結(jié)構(gòu),而且這些表都存在一個共同點(diǎn),就是表中都有相同字段,比如id,name,city,adr

MySql數(shù)據(jù)庫中存在大量的表結(jié)構(gòu),而且這些表都存在一個共同點(diǎn),就是表中都有相同字段,比如id,name,city,adress,lat,lng。表中字

MySql數(shù)據(jù)庫中存在大量的表結(jié)構(gòu),而且這些表都存在一個共同點(diǎn),就是表中都有相同字段,比如id,name,city,adress,lat,lng。表中字段id,name,city,adress不允許為空,所以表中這幾個字段的數(shù)據(jù)都是已經(jīng)賦給實(shí)值的,而lat與lng(經(jīng)緯度)是為空的?,F(xiàn)在要寫一個程序,根據(jù)city,adress請求獲取數(shù)據(jù),把循環(huán)每一表中根據(jù)city,adress請求獲取的數(shù)據(jù)更新到相應(yīng)表,相應(yīng)表中對應(yīng)的那一行數(shù)據(jù)。這句話,可能你有點(diǎn)暈,說白了就是,先循環(huán)查詢遍歷表中city與adress的值,根據(jù)city,adress的值請求獲取數(shù)據(jù),更新到相應(yīng)行中,這個表循環(huán)更新完了就跳到下個表中再循環(huán)更新,以此類推,直到全部更新。。

這是我們做的一個程序,當(dāng)時我還天真的以為手動輸入city和adress請求獲取更新,誰不曾料想數(shù)據(jù)庫表中的數(shù)據(jù)有好幾萬條,要是手動累死你吧,呵呵。。所以這個程序思想也是從我們同事那獲取到的,很有用,我也是在不斷學(xué)習(xí)當(dāng)中,發(fā)表出來供大家參考,,資源共享才能更好的進(jìn)步?。?!

MySql數(shù)據(jù)庫的連接字符串是:

string MySqlString = "Host=ip地址;Port=端口號;User id=用戶名;pwd=密碼;Database=數(shù)據(jù)庫名;Character Set=utf8"

第一步,

連接數(shù)據(jù)庫,寫個根據(jù)city,adress請求獲取數(shù)據(jù)的查詢方法,傳個參數(shù)(數(shù)據(jù)庫的表名),如Get_Data(string tablename)

查詢語句:string MySqlSelect = "select id,city,address,lat,lng from " + tablename;然后調(diào)用ExecuteReader()方法將值傳出去,注意:表中這幾個字段應(yīng)該先建立一個model類(這里不細(xì)說,大家都懂,就是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();

}


第二步,

那就是更新方法了,從查詢到的數(shù)據(jù),循環(huán)遍歷表名更新。更新方法中有四個參數(shù),根據(jù)city,adress查詢出來的id,數(shù)據(jù)庫的表名,以及要更新的字段lat,lng。如Update_Data(string id, string dataTable, decimal lat, decimal lng)

更新語句:string MySqlUpdata = "update " + dataTable + " set latitude=" + lat + ",longitude=" + lng + " whereA";

tableName[1] = "B";

tableName[2] = "C";

tableName[3] = "D";

tableName[4] = "E";

tableName[5] = "F";

tableName[6] = "G";

tableName[7] = "H";

tableName[8] = "I";

tableName[9] = "J";


而后,把表名寫個for循環(huán),實(shí)例化上面讓寫的那個Model類,調(diào)用第一步里面的查詢方法,將取得的實(shí)體值存在List泛型集合當(dāng)中。再foreach遍歷List泛型集合,取得變量參數(shù)的值(lat/lng),調(diào)用更新方法,循環(huán)更新,就行了。。代碼示例如下:

?

for (i = 0; i < tableName.Length; i++)

{

List DataSource = new List();

int h = 0;

DataSource = Get_Data(tableName[i]);

foreach (DataModel dm in DataSource)

{

try

{

Update_Data(dm.Id, tableName[i], dm.Latitude, dm.Longitude);

Console.WriteLine("第" + h + "條記錄以更新");

h++;

}

catch (Exception ex)

{

continue;

}

}

Console.WriteLine(tableName[i] + "此表已更新完畢?。?!");


到此,這篇文章算是寫完了,我不知道正在閱讀的您會不會看的不太明白,我也不知道自己表述的如何,只知道自己能理解,呵呵。。

反正這也是資源共享,給需要的您提供一點(diǎn)思路即可。

一家之言,僅供參考?。?! 

linux

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

文檔

MySQL多表循環(huán)遍歷更新

MySQL多表循環(huán)遍歷更新:MySql數(shù)據(jù)庫中存在大量的表結(jié)構(gòu),而且這些表都存在一個共同點(diǎn),就是表中都有相同字段,比如id,name,city,adress,lat,lng。表中字 MySql數(shù)據(jù)庫中存在大量的表結(jié)構(gòu),而且這些表都存在一個共同點(diǎn),就是表中都有相同字段,比如id,name,city,adr
推薦度:
  • 熱門焦點(diǎn)
專題
Top

抖音扫码关注

手机端二维码

每天分享百科知识!