mysql数据库总结_第1页
mysql数据库总结_第2页
mysql数据库总结_第3页
mysql数据库总结_第4页
mysql数据库总结_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、 完成的任务1参与系统的需求分析在任何软件系统开始编写之前,系统需求分析都是首先需要完成的内容,这关系到软件的整体功能、结构以及方法,它是整个项目中必不可少的环节。经过分析:按照结构功能,系统分为数据库服务器,策略机服务器,通讯机服务器。其中,数据库服务器处于中枢地位,独立的和策略机、通讯机服务器通讯。策略机 数据库通讯机其中数据库服务器功能有:1.存储策略机和通信机的数据,分析数据并建表。 2.与策略机的通信,根据通信需要对数据库进行读、写、更新及删除数据的操作;3.与通信机的通信,根据通信需要对数据库进行读、写、更新及删除数据的操作。4.备份数据库。2参与数据库方案制定根据通信策略服务的功能特点,数据库功能主要分为与策略机的通信和与通讯机的通信两个模块。(1)与通讯机的通信模块(2)与策略机的通信模块3参与数据库表的创建根据系统结构及功能,基于冗余性等数据库表创建规则,完成数据库表的创建。4参与系统程序流程图的绘制在以上基础上,根据系统功能,分析软件结构,绘制数据库服务器软件流程图。5数据库服务器程序的编写与测试编写数据库服务器整体结构程序、同步程序以及与数据库与通讯机通讯程序。6软件的整体打包和系统服务控制器使用 vs 自带的“安装部署工具”和 setupfactory 打包软件,并编写服务控制器程序,修改 ip 与控制系统服务状态。二、 所学到的知识点1MySQL 数据库1) MySQL 语句:(1)创建数据库 create DATABASE database-name (2)删除数据库 drop database dbname (3)创建新表create table tabname(col1 type1 not null primary key,col2 type2 not null,) (4)删除新表Drop table tablename;(5)增加一个列 Alter table tabname add column col type (6)添加主键: Alter table tabname add primary key(col) (7)创建索引:create unique index idxname on tabname(col.) 删除索引:drop index idxname (8)创建视图:create view viewname as select statement 删除视图:drop view viewname (9)说明:几个简单的基本的 sql 语句 选择:select * from table1 where 范围 插入:insert into table1(field1 ,field2) values(value1 ,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like %value1% -like 的语法很精妙 排序:select * from table1 order by field1,field2 desc总数:select count * as totalcount from table1求和:select sum(field1) as sumvalue from table1平均:select avg(field1) as avgvalue from table1最大:select max(field1) as maxvalue from table1最小:select min(field1) as minvalue from table1实际应用中,select 语句使用比较频繁,而且也极为复杂,有时难以处理,需要在软件上采取其他方法。2) C#中使用 MySQLDriverCS 连接 MySQL 数据库MySQLDriverCS 是 MySQL 提供的一种驱动连接包,在 MySQLDriverCS 安装文件夹下面找到 MySQLDriver.dll,安装完成后将 MySQLDriver.dll 添加引用到项目中。并时在程序命名空间中添加“using MySQLDriverCS; “即可。 值得注意的是,MySQL 与数据库的连接次数不能过于频繁,即应该避免“短时间多次与数据库连接”,否则会出现 exception。(1)从数据库中读数据ArrayList pidlist = new ArrayList();/建立链表对象MySQLConnection mc = new MySQLConnection();mc = new MySQLConnection(new MySQLConnectionString(“localhost”, “mysql”, “root”,”password”).AsString);/连接数据库trymc.Open();/打开连接MySQLCommand firstCmd = new MySQLCommand(“set names gb2312“, mc); /设置字符格式,防止出现中文乱码firstCmd.ExecuteNonQuery();string CommandText = “select NodeID,ParentID , NodeName,NodeSeries from nodeinfo“;MySQLCommand SecondCmd = new MySQLCommand(CommandText, mc);/声明一个 MysqlCommand 变量,该变量用于执行数据库命令SecondCmd.ExecuteNonQuery();/执行命令,向表中添加节点信息MySQLDataReader msdr;/该变量用于存储从数据库中读取的值msdr = SecondCmd.ExecuteReaderEx();/从数据库中访问数据,将返回值赋给 msdrwhile (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;finallymc.Close();/关闭连接(2)向数据库中插入、修改或删除记录MySQLConnection mc = new MySQLConnection();/新建连接mc = new MySQLConnection(new MySQLConnectionString(“localhost”, “mysql”, “root”,”password”).AsString);/连接数据库trymc.Open();/打开连接MySQLCommand firstCmd = new MySQLCommand(“set names gb2312“, mc);/设置字符格式,防止出现中文乱码firstCmd.ExecuteNonQuery();MySQLCommand msc = 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) 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 = 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, receiveBuffer.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 OnTimedEvent1(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:Program 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 section, 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.ServiceProcess”然后再工程文件中添加语句using System.ServiceProcess;即可使用系统服务方法类。如下为遍历计算机中的系统服务ServiceController services = ServiceController.GetServices();foreach (ServiceController scTemp in services)if (scTemp.ServiceName != null)switch (scTemp.ServiceName)系统服务的开启与关闭ServiceController databaseService = new ServiceController(“Net_Database Server“);databaseService.Start()databaseService.Stop()3软件的打包使用 vs 自带的“安装与部署”只能生成.msi 文件,而且打包设置几乎没有,使用起来非常不便,此次采用 setupfactory 与 vs 结合的方法对软件进行打包处理。针对 3 个服务器程序,首先使用 vs 自带的“安装与部署”生成 3 个.msi 文件,可以将其添加入 setupfactory 中的初始文件中,在打包程序中进行引用,但是这些文件必须通过MSI to EXE Compiler 工具转换为 exe 文件,否则程序会不予执行。Setupfactory 中是以屏幕操作为基础的,用户使用程序通过编辑屏幕就可以进行软件安装时对电脑的设置。1)界面编辑通过“添加”可以在“安装之前” 、 “安装之时” 、 “安装之后”添加多种屏幕。如对话框屏幕、输入框屏幕、选择框屏幕等等。2)编程环境3)编程语言在不熟悉 Setupfactory 语言是可以通过 “添加操作”选择对注册表,对话框,文件的属性、内容以及安装文件等执行相关操作。语言使用(1)对安装文件的执行File.Run(_TempLaunchFolder“数据库.exe“, “, “, SW_SHOWNORMAL, false); Application.Sleep(5000);repeatSetupEnd = File.IsInUse(_TempLaunchFolder“数据库.exe“);until not SetupEnd;Screen.Next();(2)注册表Registry.SetValue(HKEY_LOCAL_MACHINE, “SYSTEMCurrentControlSetServicesNet_Database Server“,“Description“, “网络监控系统的服务项,用于提供数据库服务“, REG_SZ);Registry.SetValue(HK

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论