《mysql数据库总结.doc》由会员分享,可在线阅读,更多相关《mysql数据库总结.doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流一、二、三、四、 mysql数据库总结.精品文档.五、 完成的任务1参与系统的需求分析在任何软件系统开始编写之前,系统需求分析都是首先需要完成的内容,这关系到软件的整体功能、结构以及方法,它是整个项目中必不可少的环节。经过分析:按照结构功能,系统分为数据库服务器,策略机服务器,通讯机服务器。其中,数据库服务器处于中枢地位,独立的和策略机、通讯机服务器通讯。其中数据库服务器功能有:1.存储策略机和通信机的数据,分析数据并建表。 2.与策略机的通信,根据通信需要对数据库进行读、写、更新及删除数据的操作;3.与通信机的通信,根据通信需要对数据库进行
2、读、写、更新及删除数据的操作。4.备份数据库。2参与数据库方案制定根据通信策略服务的功能特点,数据库功能主要分为与策略机的通信和与通讯机的通信两个模块。(1)与通讯机的通信模块(2)与策略机的通信模块3参与数据库表的创建根据系统结构及功能,基于冗余性等数据库表创建规则,完成数据库表的创建。4参与系统程序流程图的绘制在以上基础上,根据系统功能,分析软件结构,绘制数据库服务器软件流程图。5数据库服务器程序的编写与测试编写数据库服务器整体结构程序、同步程序以及与数据库与通讯机通讯程序。6软件的整体打包和系统服务控制器使用vs自带的“安装部署工具”和setupfactory打包软件,并编写服务控制器程
3、序,修改ip与控制系统服务状态。六、 所学到的知识点1MySQL数据库1) MySQL 语句:(1)创建数据库 createDATABASEdatabase-name (2)删除数据库 dropdatabasedbname (3)创建新表createtabletabname(col1type1notnullprimarykey,col2type2notnull,.) (4)删除新表Drop table tablename;(5)增加一个列 Altertabletabnameaddcolumncoltype (6)添加主键:Altertabletabnameaddprimarykey(col)
4、(7)创建索引:createuniqueindexidxnameontabname(col.) 删除索引:dropindexidxname (8)创建视图:createviewviewnameasselectstatement 删除视图:dropviewviewname (9)说明:几个简单的基本的sql语句 选择:select*fromtable1where范围 插入:insertintotable1(field1,field2)values(value1,value2) 删除:deletefromtable1where范围 更新:updatetable1setfield1=value1wh
5、ere范围 查找:select*fromtable1wherefield1like%value1%-like的语法很精妙 排序:select*fromtable1orderbyfield1,field2desc总数:selectcount*astotalcountfromtable1求和:selectsum(field1)assumvaluefromtable1平均:selectavg(field1)asavgvaluefromtable1最大:selectmax(field1)asmaxvaluefromtable1最小:selectmin(field1)asminvaluefromtabl
6、e1实际应用中,select语句使用比较频繁,而且也极为复杂,有时难以处理,需要在软件上采取其他方法。2) C#中使用MySQLDriverCS连接MySQL数据库MySQLDriverCS是MySQL提供的一种驱动连接包,在MySQLDriverCS安装文件夹下面找到MySQLDriver.dll,安装完成后将MySQLDriver.dll添加引用到项目中。并时在程序命名空间中添加using MySQLDriverCS; 即可。值得注意的是,MySQL与数据库的连接次数不能过于频繁,即应该避免“短时间多次与数据库连接”,否则会出现exception。(1)从数据库中读数据ArrayList
7、pidlist = new ArrayList();/建立链表对象 MySQLConnection mc = new MySQLConnection(); mc = new MySQLConnection(new MySQLConnectionString(“localhost”, “mysql”, “root”,”password”).AsString);/连接数据库 try mc.Open();/打开连接 MySQLCommand firstCmd = new MySQLCommand(set names gb2312, mc); /设置字符格式,防止出现中文乱码 firstCmd.Exe
8、cuteNonQuery(); string CommandText = select NodeID,ParentID,NodeName,NodeSeries from nodeinfo; MySQLCommand SecondCmd = new MySQLCommand(CommandText, mc);/声明一个MysqlCommand变量,该变量用于执行数据库命令 SecondCmd.ExecuteNonQuery();/执行命令,向表中添加节点信息 MySQLDataReader msdr;/该变量用于存储从数据库中读取的值 msdr = SecondCmd.ExecuteReader
9、Ex();/从数据库中访问数据,将返回值赋给msdr while (msdr.Read() int id = msdr.GetInt16(0); pidlist.Add(id);/数据1 string name= msdr.GetString(2); pidlist.Add(name);/节点名称 msdr.Close(); catch (MySQLException ex) string error = ex.Message; Console.WriteLine(error); return null; finally mc.Close();/关闭连接 (2)向数据库中插入、修改或删除记录M
10、ySQLConnection mc = new MySQLConnection();/新建连接 mc = new MySQLConnection(new MySQLConnectionString(“localhost”, “mysql”, “root”,”password”).AsString);/连接数据库 try mc.Open();/打开连接 MySQLCommand firstCmd = new MySQLCommand(set names gb2312, mc);/设置字符格式,防止出现中文乱码 firstCmd.ExecuteNonQuery(); MySQLCommand ms
11、c = new MySQLCommand();/声明一个MysqlCommand变量,该变量用于执行数据库命令 msc.Connection = mc; msc.CommandText = sqlquery;/(插入、修改或删除记录的sql语句) msc.ExecuteNonQuery();/执行命令 msc.Dispose(); return true; catch (MySQLException ex) Console.WriteLine(ex.Message); return false; finally mc.Close();/关闭连接 2C#语言 注意:在程序编写时,必须加注视1)
12、TCP监听程序IPAddress m_host = IPAddress.Parse(MainProcess.LocalIP);TcpListener listenning = new TcpListener(m_host, MainProcess.DataBasePort);listenning.Start();2) TCP发送机接收程序(1)发送TcpClient client = new TcpClient(IpDestination, PortDestination);NetworkStream clientFlow = client.GetStream();byte byteTime
13、= Encoding.BigEndianUnicode.GetBytes(str);clientFlow.Write(byteTime, 0, byteTime.Length);clientFlow.Close();client.Close();(2)接收TcpClient connectionsocket; = listenning.AcceptTcpClient();NetworkStream receiveFlow = connectionsocket.GetStream();receiveBytes = receiveFlow.Read(receiveBuffer, 0, receiv
14、eBuffer.Length);connectionsocket.Close();值得注意的是:c#中发送连接异常时,进入异常等待时间约为11秒。2)定时器定时器的创建、触发事件、定时时间以及定时器的关闭aTimer1 = new System.Timers.Timer();aTimer1.Elapsed += new ElapsedEventHandler(OnTimedEvent1);aTimer1.Interval = 60000;aTimer1.Enabled = true; aTimer1.Enabled = false;public static void OnTimedEvent
15、1(object source, ElapsedEventArgs e) 3)多线程Thread listenPort8010 = new Thread(listenMethod);listenPort8010.Start();值得注意的是:C#中没有完善的强制关闭线程的方法。4)读写ini文件(1)读DllImport(kernel32)private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);string Path = C:Pro
16、gram Files网络监控系统数据库服务DatabaseIP.ini;StringBuilder readData = new StringBuilder(255);string Section = ip;string Key = DatabaseIP;GetPrivateProfileString(Section, Key, , readData, 255, Path);LocalIP = readData.ToString();(2)写DllImport(kernel32)public static extern int GetPrivateProfileString(string se
17、ction, string key, string def, StringBuilder retVal, int size, string filePath); string Path = C:Program Files网络监控系统数据库服务DatabaseIP.ini;string Section = ip;string Key = DatabaseIP;string writeData = databaseIP1.Text;WritePrivateProfileString(Section, Key, writeData, Path);5)系统服务在“引用”中添加“System.Servi
18、ceProcess”然后再工程文件中添加语句using System.ServiceProcess;即可使用系统服务方法类。如下为遍历计算机中的系统服务ServiceController services = ServiceController.GetServices();foreach (ServiceController scTemp in services)if (scTemp.ServiceName != null) switch (scTemp.ServiceName)系统服务的开启与关闭ServiceController databaseService = new ServiceC
19、ontroller(Net_Database Server);databaseService.Start()databaseService.Stop()3软件的打包使用vs自带的“安装与部署”只能生成.msi文件,而且打包设置几乎没有,使用起来非常不便,此次采用setupfactory与vs结合的方法对软件进行打包处理。针对3个服务器程序,首先使用vs自带的“安装与部署”生成3个.msi文件,可以将其添加入setupfactory中的初始文件中,在打包程序中进行引用,但是这些文件必须通过MSI to EXE Compiler工具转换为exe文件,否则程序会不予执行。Setupfactory中是
20、以屏幕操作为基础的,用户使用程序通过编辑屏幕就可以进行软件安装时对电脑的设置。1)界面编辑通过“添加”可以在“安装之前”、“安装之时”、“安装之后”添加多种屏幕。如对话框屏幕、输入框屏幕、选择框屏幕等等。2)编程环境3)编程语言在不熟悉Setupfactory语言是可以通过“添加操作”选择对注册表,对话框,文件的属性、内容以及安装文件等执行相关操作。语言使用(1)对安装文件的执行File.Run(_TempLaunchFolder.数据库.exe, , , SW_SHOWNORMAL, false); Application.Sleep(5000);repeatSetupEnd = File.
21、IsInUse(_TempLaunchFolder.数据库.exe);until not SetupEnd;Screen.Next();(2)注册表Registry.SetValue(HKEY_LOCAL_MACHINE, SYSTEMCurrentControlSetServicesNet_Database Server,Description, 网络监控系统的服务项,用于提供数据库服务, REG_SZ);Registry.SetValue(HKEY_LOCAL_MACHINE, SYSTEMCurrentControlSetServicesNet_Database Server,Start
22、, 2, REG_DWORD);Registry.SetValue(HKEY_LOCAL_MACHINE, SYSTEMCurrentControlSetServicesNet_Database Server,Type, 272, REG_DWORD);(3)if elseif check01 thenScreen.Jump(数据库服务安装进行中);elseif check02 thenScreen.Jump(通讯机安装进行中);else Screen.Jump(策略服务安装进行中)endend(4)会话变量Path6 = C:Program Files网络监控系统策略服务webIIS6.0;SessionVar.Set(%AppFolder6%,Path6);除此之外,使用setupfactory可以完成自定义安装,安装界面图片的填充,背景音乐的设置,查找并终止进程等。4系统服务控制器此控制器完成了对指定文件中所包含的ip地址的修改和系统服务状态显示及开关功能,主要使用使用winform组件完成。七、 心得体会经过此次软件编程,有几点体会:1 在软件编程中,首要解决的是软件需求分析以及对软件整体的把握,后期编程才会游刃有余。2 使用vs开发工具时,vs自带的msdn软件手册十分重要,包含了需要掌握的所有知识。3 不懂得要积极去问,但不能不懂的都去问别人,首先应想到的是自己。