由于项目需要,我写了一个初始MySQL数据库的工具;
一, 思路:
(1),首先读取包含mysql语句的脚本(其中有创建数据库,表,插入初始数据等!)。
(2),然后替换里面的一些数据值(如guid,注释等!)。
(3),把替换后的数据流重新写入mysql脚本。
(4),调用MySQL命令执行相应的命令。
主要思路结束!
二, 现具体过程如下:
1,主界面如图:
2,全局代码和构造方法如下:
3,在按钮事件中验证了各个文本框中的值是否为空;IP地址和端口号的验证!
代码如下:
4, 如果输入符和规范,则调用主方法(主方法里实现思路中主要方法的调用);
主方法代码如下:
5, 读脚本文件,替换guid标识的方法;
代码如下:
6,把替换后的字符串写入脚本文件:
代码如下:
7,然后是开启两个timer,一个控制进度条,另一个获取执行时间的间隔。这里略。。。
8,在获取执行时间的timer事件中,调用执行脚本文件的方法。
该方法的代码如下:
9,把给定的文件流转换为二进制字节数组的方法,
代码如下:
10,控制进度条的timer事件;
代码如下:
/// 控制进度条显示
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void timer1_Tick(object sender, EventArgs e)
{
try
{
this.progressBar1.Value = i;
i += 10;
if (i == 1000)
{
this.timer1.Stop();
if (string.IsNullOrEmpty(mesg) && info)
{
lbMessage.Text = "数据导入成功!" + timeMesg;
new MCFrom(_guID, IP, userName, userPwd, DBName).ShowDialog();
}
else
{
lbMessage.Text = "数据导入失败!";
}
stop.Reset();
}
}
catch (System.Exception )
{
}
}
11,获取执行时间间隔的time事件;
代码如下:
12,整个小工具大体的程序代码完成!有些细节省略掉了 !请在我的随笔里查看!