mysql數(shù)據(jù)庫總結(jié)教程文件_第1頁
mysql數(shù)據(jù)庫總結(jié)教程文件_第2頁
mysql數(shù)據(jù)庫總結(jié)教程文件_第3頁
mysql數(shù)據(jù)庫總結(jié)教程文件_第4頁
mysql數(shù)據(jù)庫總結(jié)教程文件_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Good is good, but better carries it.精益求精,善益求善。mysql數(shù)據(jù)庫總結(jié)-完成的任務(wù)1參與系統(tǒng)的需求分析在任何軟件系統(tǒng)開始編寫之前,系統(tǒng)需求分析都是首先需要完成的內(nèi)容,這關(guān)系到軟件的整體功能、結(jié)構(gòu)以及方法,它是整個(gè)項(xiàng)目中必不可少的環(huán)節(jié)。經(jīng)過分析:按照結(jié)構(gòu)功能,系統(tǒng)分為數(shù)據(jù)庫服務(wù)器,策略機(jī)服務(wù)器,通訊機(jī)服務(wù)器。其中,數(shù)據(jù)庫服務(wù)器處于中樞地位,獨(dú)立的和策略機(jī)、通訊機(jī)服務(wù)器通訊。其中數(shù)據(jù)庫服務(wù)器功能有:1.存儲策略機(jī)和通信機(jī)的數(shù)據(jù),分析數(shù)據(jù)并建表。2.與策略機(jī)的通信,根據(jù)通信需要對數(shù)據(jù)庫進(jìn)行讀、寫、更新及刪除數(shù)據(jù)的操作;3.與通信機(jī)的通信,根據(jù)通信需要對數(shù)據(jù)庫

2、進(jìn)行讀、寫、更新及刪除數(shù)據(jù)的操作。4.備份數(shù)據(jù)庫。2參與數(shù)據(jù)庫方案制定根據(jù)通信策略服務(wù)的功能特點(diǎn),數(shù)據(jù)庫功能主要分為與策略機(jī)的通信和與通訊機(jī)的通信兩個(gè)模塊。(1)與通訊機(jī)的通信模塊(2)與策略機(jī)的通信模塊3參與數(shù)據(jù)庫表的創(chuàng)建根據(jù)系統(tǒng)結(jié)構(gòu)及功能,基于冗余性等數(shù)據(jù)庫表創(chuàng)建規(guī)則,完成數(shù)據(jù)庫表的創(chuàng)建。4參與系統(tǒng)程序流程圖的繪制在以上基礎(chǔ)上,根據(jù)系統(tǒng)功能,分析軟件結(jié)構(gòu),繪制數(shù)據(jù)庫服務(wù)器軟件流程圖。5數(shù)據(jù)庫服務(wù)器程序的編寫與測試編寫數(shù)據(jù)庫服務(wù)器整體結(jié)構(gòu)程序、同步程序以及與數(shù)據(jù)庫與通訊機(jī)通訊程序。6軟件的整體打包和系統(tǒng)服務(wù)控制器使用vs自帶的“安裝部署工具”和setupfactory打包軟件,并編寫服務(wù)控制

3、器程序,修改ip與控制系統(tǒng)服務(wù)狀態(tài)。所學(xué)到的知識點(diǎn)1MySQL數(shù)據(jù)庫1)MySQL語句:(1)創(chuàng)建數(shù)據(jù)庫createDATABASEdatabase-name(2)刪除數(shù)據(jù)庫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)說明:幾個(gè)簡單的基本的sql語句選擇:select*fromtable1where范圍插入:insertintotable1(field1,field2)values(value1,value2)刪除:deletefromtable1where范圍更新:updatetable1setfield1=value1where范圍查找:select*fromta

5、ble1wherefield1like%value1%-like的語法很精妙排序:select*fromtable1orderbyfield1,field2desc總數(shù):selectcount*astotalcountfromtable1求和:selectsum(field1)assumvaluefromtable1平均:selectavg(field1)asavgvaluefromtable1最大:selectmax(field1)asmaxvaluefromtable1最小:selectmin(field1)asminvaluefromtable1實(shí)際應(yīng)用中,select語句使用比較頻繁,

6、而且也極為復(fù)雜,有時(shí)難以處理,需要在軟件上采取其他方法。2)C#中使用MySQLDriverCS連接MySQL數(shù)據(jù)庫MySQLDriverCS是MySQL提供的一種驅(qū)動連接包,在MySQLDriverCS安裝文件夾下面找到MySQLDriver.dll,安裝完成后將MySQLDriver.dll添加引用到項(xiàng)目中。并時(shí)在程序命名空間中添加usingMySQLDriverCS;即可。值得注意的是,MySQL與數(shù)據(jù)庫的連接次數(shù)不能過于頻繁,即應(yīng)該避免“短時(shí)間多次與數(shù)據(jù)庫連接”,否則會出現(xiàn)exception。(1)從數(shù)據(jù)庫中讀數(shù)據(jù)ArrayListpidlist=newArrayList();/建立鏈

7、表對象MySQLConnectionmc=newMySQLConnection();mc=newMySQLConnection(newMySQLConnectionString(“l(fā)ocalhost”,“mysql”,“root”,”password”).AsString);/連接數(shù)據(jù)庫trymc.Open();/打開連接MySQLCommandfirstCmd=newMySQLCommand(setnamesgb2312,mc);/設(shè)置字符格式,防止出現(xiàn)中文亂碼firstCmd.ExecuteNonQuery();stringCommandText=selectNodeID,ParentID

8、,NodeName,NodeSeriesfromnodeinfo;MySQLCommandSecondCmd=newMySQLCommand(CommandText,mc);/聲明一個(gè)MysqlCommand變量,該變量用于執(zhí)行數(shù)據(jù)庫命令SecondCmd.ExecuteNonQuery();/執(zhí)行命令,向表中添加節(jié)點(diǎn)信息MySQLDataReadermsdr;/該變量用于存儲從數(shù)據(jù)庫中讀取的值msdr=SecondCmd.ExecuteReaderEx();/從數(shù)據(jù)庫中訪問數(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)名稱msdr.Close();catch(MySQLExceptionex)stringerror=ex.Message;Console.WriteLine(error);returnnull;finallymc.Close();/關(guān)閉連接(2)向數(shù)據(jù)庫中插入、修改或刪除記錄MySQLConnectionmc=newMySQLConnection();/新建連接mc=newMySQLConnection(newMySQLConnectionString(“l(fā)ocalho

10、st”,“mysql”,“root”,”password”).AsString);/連接數(shù)據(jù)庫trymc.Open();/打開連接MySQLCommandfirstCmd=newMySQLCommand(setnamesgb2312,mc);/設(shè)置字符格式,防止出現(xiàn)中文亂碼firstCmd.ExecuteNonQuery();MySQLCommandmsc=newMySQLCommand();/聲明一個(gè)MysqlCommand變量,該變量用于執(zhí)行數(shù)據(jù)庫命令msc.Connection=mc;msc.CommandText=sqlquery;/(插入、修改或刪除記錄的sql語句)msc.Exec

11、uteNonQuery();/執(zhí)行命令msc.Dispose();returntrue;catch(MySQLExceptionex)Console.WriteLine(ex.Message);returnfalse;finallymc.Close();/關(guān)閉連接2C#語言注意:在程序編寫時(shí),必須加注視1)TCP監(jiān)聽程序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#中沒有完善的強(qiáng)制關(guān)閉線程的方法。4)讀寫ini文件(1)讀DllImport(kernel32)privatestaticexternlongWritePri

15、vateProfileString(stringsection,stringkey,stringval,stringfilePath);stringPath=C:ProgramFiles網(wǎng)絡(luò)監(jiān)控系統(tǒng)數(shù)據(jù)庫服務(wù)DatabaseIP.ini;StringBuilderreadData=newStringBuilder(255);stringSection=ip;stringKey=DatabaseIP;GetPrivateProfileString(Section,Key,readData,255,Path);LocalIP=readData.ToString();(2)寫DllImport(ke

16、rnel32)publicstaticexternintGetPrivateProfileString(stringsection,stringkey,stringdef,StringBuilderretVal,intsize,stringfilePath);stringPath=C:ProgramFiles網(wǎng)絡(luò)監(jiān)控系統(tǒng)數(shù)據(jù)庫服務(wù)DatabaseIP.ini;stringSection=ip;stringKey=DatabaseIP;stringwriteData=databaseIP1.Text;WritePrivateProfileString(Section,Key,writeData,

17、Path);5)系統(tǒng)服務(wù)在“引用”中添加“System.ServiceProcess”然后再工程文件中添加語句usingSystem.ServiceProcess;即可使用系統(tǒng)服務(wù)方法類。如下為遍歷計(jì)算機(jī)中的系統(tǒng)服務(wù)ServiceControllerservices=ServiceController.GetServices();foreach(ServiceControllerscTempinservices)if(scTemp.ServiceName!=null)switch(scTemp.ServiceName)系統(tǒng)服務(wù)的開啟與關(guān)閉ServiceControllerdatabaseSer

18、vice=newServiceController(Net_DatabaseServer);databaseService.Start()databaseService.Stop()3軟件的打包使用vs自帶的“安裝與部署”只能生成.msi文件,而且打包設(shè)置幾乎沒有,使用起來非常不便,此次采用setupfactory與vs結(jié)合的方法對軟件進(jìn)行打包處理。針對3個(gè)服務(wù)器程序,首先使用vs自帶的“安裝與部署”生成3個(gè).msi文件,可以將其添加入setupfactory中的初始文件中,在打包程序中進(jìn)行引用,但是這些文件必須通過MSItoEXECompiler工具轉(zhuǎn)換為exe文件,否則程序會不予執(zhí)行。Se

19、tupfactory中是以屏幕操作為基礎(chǔ)的,用戶使用程序通過編輯屏幕就可以進(jìn)行軟件安裝時(shí)對電腦的設(shè)置。1)界面編輯通過“添加”可以在“安裝之前”、“安裝之時(shí)”、“安裝之后”添加多種屏幕。如對話框屏幕、輸入框屏幕、選擇框屏幕等等。2)編程環(huán)境3)編程語言在不熟悉Setupfactory語言是可以通過“添加操作”選擇對注冊表,對話框,文件的屬性、內(nèi)容以及安裝文件等執(zhí)行相關(guān)操作。語言使用(1)對安裝文件的執(zhí)行File.Run(_TempLaunchFolder.數(shù)據(jù)庫.exe,SW_SHOWNORMAL,false);Application.Sleep(5000);repeatSetupEnd=File.IsInUse(_TempLaunchFolder.數(shù)據(jù)庫.exe);untilnotSetupEnd;Screen.Next();(2)注冊表Registry.SetValue(HKEY_LOCAL_MACHINE,SYSTEMCurrentControlSetServicesNet_DatabaseServer,Description,網(wǎng)絡(luò)監(jiān)控系統(tǒng)的服務(wù)項(xiàng),用于提供數(shù)據(jù)庫服務(wù),REG_SZ);Registry.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論