




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Good is good, but better carries it.精益求精,善益求善。mysql數(shù)據(jù)庫(kù)總結(jié)-完成的任務(wù)1參與系統(tǒng)的需求分析在任何軟件系統(tǒng)開(kāi)始編寫(xiě)之前,系統(tǒng)需求分析都是首先需要完成的內(nèi)容,這關(guān)系到軟件的整體功能、結(jié)構(gòu)以及方法,它是整個(gè)項(xiàng)目中必不可少的環(huán)節(jié)。經(jīng)過(guò)分析:按照結(jié)構(gòu)功能,系統(tǒng)分為數(shù)據(jù)庫(kù)服務(wù)器,策略機(jī)服務(wù)器,通訊機(jī)服務(wù)器。其中,數(shù)據(jù)庫(kù)服務(wù)器處于中樞地位,獨(dú)立的和策略機(jī)、通訊機(jī)服務(wù)器通訊。其中數(shù)據(jù)庫(kù)服務(wù)器功能有:1.存儲(chǔ)策略機(jī)和通信機(jī)的數(shù)據(jù),分析數(shù)據(jù)并建表。2.與策略機(jī)的通信,根據(jù)通信需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行讀、寫(xiě)、更新及刪除數(shù)據(jù)的操作;3.與通信機(jī)的通信,根據(jù)通信需要對(duì)數(shù)據(jù)庫(kù)
2、進(jìn)行讀、寫(xiě)、更新及刪除數(shù)據(jù)的操作。4.備份數(shù)據(jù)庫(kù)。2參與數(shù)據(jù)庫(kù)方案制定根據(jù)通信策略服務(wù)的功能特點(diǎn),數(shù)據(jù)庫(kù)功能主要分為與策略機(jī)的通信和與通訊機(jī)的通信兩個(gè)模塊。(1)與通訊機(jī)的通信模塊(2)與策略機(jī)的通信模塊3參與數(shù)據(jù)庫(kù)表的創(chuàng)建根據(jù)系統(tǒng)結(jié)構(gòu)及功能,基于冗余性等數(shù)據(jù)庫(kù)表創(chuàng)建規(guī)則,完成數(shù)據(jù)庫(kù)表的創(chuàng)建。4參與系統(tǒng)程序流程圖的繪制在以上基礎(chǔ)上,根據(jù)系統(tǒng)功能,分析軟件結(jié)構(gòu),繪制數(shù)據(jù)庫(kù)服務(wù)器軟件流程圖。5數(shù)據(jù)庫(kù)服務(wù)器程序的編寫(xiě)與測(cè)試編寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器整體結(jié)構(gòu)程序、同步程序以及與數(shù)據(jù)庫(kù)與通訊機(jī)通訊程序。6軟件的整體打包和系統(tǒng)服務(wù)控制器使用vs自帶的“安裝部署工具”和setupfactory打包軟件,并編寫(xiě)服務(wù)控制
3、器程序,修改ip與控制系統(tǒng)服務(wù)狀態(tài)。所學(xué)到的知識(shí)點(diǎn)1MySQL數(shù)據(jù)庫(kù)1)MySQL語(yǔ)句:(1)創(chuàng)建數(shù)據(jù)庫(kù)createDATABASEdatabase-name(2)刪除數(shù)據(jù)庫(kù)dropdatabasedbname(3)創(chuàng)建新表createtabletabname(col1type1notnullprimarykey,col2type2notnull,.)(4)刪除新表Droptabletablename;(5)增加一個(gè)列Altertabletabnameaddcolumncoltype(6)添加主鍵:Altertabletabnameaddprimarykey(col)(7)創(chuàng)建索引:creat
4、euniqueindexidxnameontabname(col.)刪除索引:dropindexidxname(8)創(chuàng)建視圖:createviewviewnameasselectstatement刪除視圖:dropviewviewname(9)說(shuō)明:幾個(gè)簡(jiǎn)單的基本的sql語(yǔ)句選擇:select*fromtable1where范圍插入:insertintotable1(field1,field2)values(value1,value2)刪除:deletefromtable1where范圍更新:updatetable1setfield1=value1where范圍查找:select*fromta
5、ble1wherefield1like%value1%-like的語(yǔ)法很精妙排序:select*fromtable1orderbyfield1,field2desc總數(shù):selectcount*astotalcountfromtable1求和:selectsum(field1)assumvaluefromtable1平均:selectavg(field1)asavgvaluefromtable1最大:selectmax(field1)asmaxvaluefromtable1最?。簊electmin(field1)asminvaluefromtable1實(shí)際應(yīng)用中,select語(yǔ)句使用比較頻繁,
6、而且也極為復(fù)雜,有時(shí)難以處理,需要在軟件上采取其他方法。2)C#中使用MySQLDriverCS連接MySQL數(shù)據(jù)庫(kù)MySQLDriverCS是MySQL提供的一種驅(qū)動(dòng)連接包,在MySQLDriverCS安裝文件夾下面找到MySQLDriver.dll,安裝完成后將MySQLDriver.dll添加引用到項(xiàng)目中。并時(shí)在程序命名空間中添加usingMySQLDriverCS;即可。值得注意的是,MySQL與數(shù)據(jù)庫(kù)的連接次數(shù)不能過(guò)于頻繁,即應(yīng)該避免“短時(shí)間多次與數(shù)據(jù)庫(kù)連接”,否則會(huì)出現(xiàn)exception。(1)從數(shù)據(jù)庫(kù)中讀數(shù)據(jù)ArrayListpidlist=newArrayList();/建立鏈
7、表對(duì)象MySQLConnectionmc=newMySQLConnection();mc=newMySQLConnection(newMySQLConnectionString(“l(fā)ocalhost”,“mysql”,“root”,”password”).AsString);/連接數(shù)據(jù)庫(kù)trymc.Open();/打開(kāi)連接MySQLCommandfirstCmd=newMySQLCommand(setnamesgb2312,mc);/設(shè)置字符格式,防止出現(xiàn)中文亂碼firstCmd.ExecuteNonQuery();stringCommandText=selectNodeID,ParentID
8、,NodeName,NodeSeriesfromnodeinfo;MySQLCommandSecondCmd=newMySQLCommand(CommandText,mc);/聲明一個(gè)MysqlCommand變量,該變量用于執(zhí)行數(shù)據(jù)庫(kù)命令SecondCmd.ExecuteNonQuery();/執(zhí)行命令,向表中添加節(jié)點(diǎn)信息MySQLDataReadermsdr;/該變量用于存儲(chǔ)從數(shù)據(jù)庫(kù)中讀取的值msdr=SecondCmd.ExecuteReaderEx();/從數(shù)據(jù)庫(kù)中訪問(wèn)數(shù)據(jù),將返回值賦給msdrwhile(msdr.Read()intid=msdr.GetInt16(0);pidlist
9、.Add(id);/數(shù)據(jù)1stringname=msdr.GetString(2);pidlist.Add(name);/節(jié)點(diǎn)名稱(chēng)msdr.Close();catch(MySQLExceptionex)stringerror=ex.Message;Console.WriteLine(error);returnnull;finallymc.Close();/關(guān)閉連接(2)向數(shù)據(jù)庫(kù)中插入、修改或刪除記錄MySQLConnectionmc=newMySQLConnection();/新建連接mc=newMySQLConnection(newMySQLConnectionString(“l(fā)ocalho
10、st”,“mysql”,“root”,”password”).AsString);/連接數(shù)據(jù)庫(kù)trymc.Open();/打開(kāi)連接MySQLCommandfirstCmd=newMySQLCommand(setnamesgb2312,mc);/設(shè)置字符格式,防止出現(xiàn)中文亂碼firstCmd.ExecuteNonQuery();MySQLCommandmsc=newMySQLCommand();/聲明一個(gè)MysqlCommand變量,該變量用于執(zhí)行數(shù)據(jù)庫(kù)命令msc.Connection=mc;msc.CommandText=sqlquery;/(插入、修改或刪除記錄的sql語(yǔ)句)msc.Exec
11、uteNonQuery();/執(zhí)行命令msc.Dispose();returntrue;catch(MySQLExceptionex)Console.WriteLine(ex.Message);returnfalse;finallymc.Close();/關(guān)閉連接2C#語(yǔ)言注意:在程序編寫(xiě)時(shí),必須加注視1)TCP監(jiān)聽(tīng)程序IPAddressm_host=IPAddress.Parse(MainProcess.LocalIP);TcpListenerlistenning=newTcpListener(m_host,MainProcess.DataBasePort);listenning.Start
12、();2)TCP發(fā)送機(jī)接收程序(1)發(fā)送TcpClientclient=newTcpClient(IpDestination,PortDestination);NetworkStreamclientFlow=client.GetStream();bytebyteTime=Encoding.BigEndianUnicode.GetBytes(str);clientFlow.Write(byteTime,0,byteTime.Length);clientFlow.Close();client.Close();(2)接收TcpClientconnectionsocket;=listenning.Ac
13、ceptTcpClient();NetworkStreamreceiveFlow=connectionsocket.GetStream();receiveBytes=receiveFlow.Read(receiveBuffer,0,receiveBuffer.Length);connectionsocket.Close();值得注意的是:c#中發(fā)送連接異常時(shí),進(jìn)入異常等待時(shí)間約為11秒。2)定時(shí)器定時(shí)器的創(chuàng)建、觸發(fā)事件、定時(shí)時(shí)間以及定時(shí)器的關(guān)閉aTimer1=newSystem.Timers.Timer();aTimer1.Elapsed+=newElapsedEventHandler(OnT
14、imedEvent1);aTimer1.Interval=60000;aTimer1.Enabled=true;aTimer1.Enabled=false;publicstaticvoidOnTimedEvent1(objectsource,ElapsedEventArgse)3)多線程ThreadlistenPort8010=newThread(listenMethod);listenPort8010.Start();值得注意的是:C#中沒(méi)有完善的強(qiáng)制關(guān)閉線程的方法。4)讀寫(xiě)ini文件(1)讀DllImport(kernel32)privatestaticexternlongWritePri
15、vateProfileString(stringsection,stringkey,stringval,stringfilePath);stringPath=C:ProgramFiles網(wǎng)絡(luò)監(jiān)控系統(tǒng)數(shù)據(jù)庫(kù)服務(wù)DatabaseIP.ini;StringBuilderreadData=newStringBuilder(255);stringSection=ip;stringKey=DatabaseIP;GetPrivateProfileString(Section,Key,readData,255,Path);LocalIP=readData.ToString();(2)寫(xiě)DllImport(ke
16、rnel32)publicstaticexternintGetPrivateProfileString(stringsection,stringkey,stringdef,StringBuilderretVal,intsize,stringfilePath);stringPath=C:ProgramFiles網(wǎng)絡(luò)監(jiān)控系統(tǒng)數(shù)據(jù)庫(kù)服務(wù)DatabaseIP.ini;stringSection=ip;stringKey=DatabaseIP;stringwriteData=databaseIP1.Text;WritePrivateProfileString(Section,Key,writeData,
17、Path);5)系統(tǒng)服務(wù)在“引用”中添加“System.ServiceProcess”然后再工程文件中添加語(yǔ)句usingSystem.ServiceProcess;即可使用系統(tǒng)服務(wù)方法類(lèi)。如下為遍歷計(jì)算機(jī)中的系統(tǒng)服務(wù)ServiceControllerservices=ServiceController.GetServices();foreach(ServiceControllerscTempinservices)if(scTemp.ServiceName!=null)switch(scTemp.ServiceName)系統(tǒng)服務(wù)的開(kāi)啟與關(guān)閉ServiceControllerdatabaseSer
18、vice=newServiceController(Net_DatabaseServer);databaseService.Start()databaseService.Stop()3軟件的打包使用vs自帶的“安裝與部署”只能生成.msi文件,而且打包設(shè)置幾乎沒(méi)有,使用起來(lái)非常不便,此次采用setupfactory與vs結(jié)合的方法對(duì)軟件進(jìn)行打包處理。針對(duì)3個(gè)服務(wù)器程序,首先使用vs自帶的“安裝與部署”生成3個(gè).msi文件,可以將其添加入setupfactory中的初始文件中,在打包程序中進(jìn)行引用,但是這些文件必須通過(guò)MSItoEXECompiler工具轉(zhuǎn)換為exe文件,否則程序會(huì)不予執(zhí)行。Se
19、tupfactory中是以屏幕操作為基礎(chǔ)的,用戶使用程序通過(guò)編輯屏幕就可以進(jìn)行軟件安裝時(shí)對(duì)電腦的設(shè)置。1)界面編輯通過(guò)“添加”可以在“安裝之前”、“安裝之時(shí)”、“安裝之后”添加多種屏幕。如對(duì)話框屏幕、輸入框屏幕、選擇框屏幕等等。2)編程環(huán)境3)編程語(yǔ)言在不熟悉Setupfactory語(yǔ)言是可以通過(guò)“添加操作”選擇對(duì)注冊(cè)表,對(duì)話框,文件的屬性、內(nèi)容以及安裝文件等執(zhí)行相關(guān)操作。語(yǔ)言使用(1)對(duì)安裝文件的執(zhí)行File.Run(_TempLaunchFolder.數(shù)據(jù)庫(kù).exe,SW_SHOWNORMAL,false);Application.Sleep(5000);repeatSetupEnd=File.IsInUse(_TempLaunchFolder.數(shù)據(jù)庫(kù).exe);untilnotSetupEnd;Screen.Next();(2)注冊(cè)表Registry.SetValue(HKEY_LOCAL_MACHINE,SYSTEMCurrentControlSetServicesNet_DatabaseServer,Description,網(wǎng)絡(luò)監(jiān)控系統(tǒng)的服務(wù)項(xiàng),用于提供數(shù)據(jù)庫(kù)服務(wù),REG_SZ);Registry.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025全球?qū)@S可合同協(xié)議書(shū)
- 新質(zhì)生產(chǎn)力風(fēng)險(xiǎn)社會(huì)
- 著色性干皮病的臨床護(hù)理
- 2025如何規(guī)避合同糾紛風(fēng)險(xiǎn)-租賃合同范本解析
- 2025年國(guó)家電網(wǎng)招聘之文學(xué)哲學(xué)類(lèi)真題練習(xí)試卷B卷附答案
- 初中歷史明朝的對(duì)外關(guān)系 課件 +2024-2025學(xué)年統(tǒng)編版七年級(jí)歷史下冊(cè)
- 生殖器濕疹的臨床護(hù)理
- 2025年涂裝車(chē)間承包合同
- 2025銷(xiāo)售經(jīng)理合同樣本
- 2025年簽訂股權(quán)轉(zhuǎn)讓合同:注意風(fēng)險(xiǎn)轉(zhuǎn)移的關(guān)鍵點(diǎn)
- HY/T 0273.2-2023海洋災(zāi)害風(fēng)險(xiǎn)評(píng)估和區(qū)劃技術(shù)導(dǎo)則第2部分:海浪
- 高空作業(yè)施工方案四篇
- 四川省2024年中考數(shù)學(xué)試卷十七套合卷【附答案】
- 倉(cāng)庫(kù)物料儲(chǔ)存、搬運(yùn)操作指導(dǎo)書(shū)
- JGJ8-2016建筑變形測(cè)量規(guī)范
- 高壓線下施工安全專(zhuān)項(xiàng)施工方案
- 中國(guó)急性缺血性卒中診治指南(2023)解讀
- 寬帶服務(wù)用戶行為分析與大數(shù)據(jù)應(yīng)用
- 高速公路收費(fèi)站QC小組成果如何降低入口發(fā)卡差錯(cuò)率
- (高清版)JTG D81-2017 公路交通安全設(shè)施設(shè)計(jì)規(guī)范
- 壓軸題10 壓強(qiáng)與浮力選填壓軸題(解析版)-2023年中考物理壓軸題專(zhuān)項(xiàng)訓(xùn)練
評(píng)論
0/150
提交評(píng)論