📄 form1.cs
字号:
this.groupBox2.TabIndex = 28;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "参数设置";
//
// Form1
//
this.AccessibleRole = System.Windows.Forms.AccessibleRole.TitleBar;
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(584, 229);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.label5);
this.Controls.Add(this.axSuperWorkspace1);
this.Controls.Add(this.pictureBox1);
this.Controls.Add(this.btn_esc);
this.Controls.Add(this.btn_ok);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "Form1";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "GIS服务器设置";
((System.ComponentModel.ISupportInitialize)(this.axSuperWorkspace1)).EndInit();
this.groupBox1.ResumeLayout(false);
this.groupBox2.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void btn_ok_Click(object sender, System.EventArgs e)
{
database_name = new string[,] {{"ding4","丁4煤层底板等高线及储量计算图"},{"ding56","丁5-6煤层底板等高线及储量计算图"},
{"geng20","庚20煤层底板等高线及储量计算图"},{"ji1617","己16-17煤层底板等高线及储量计算图"},
{"wu8","戊8煤层底板等高线及储量计算图"},{"wu910","戊9-10煤层底板等高线及储量计算图"},
{"pm10x","十线矿井地质剖面图"},{"pm112x","一一二线矿井地质剖面图"},
{"pm113x","一一三线矿井地质剖面图"},{"pm11x","十一线矿井地质剖面图"},
{"pm12x","十二线矿井地质剖面图"},{"pm13x","十三线矿井地质剖面图"},
{"pm14x","十四线矿井地质剖面图"},{"pm1x","一线矿井地质剖面图"},
{"pm20x","二十线矿井地质剖面图"},{"pm22x","二十二线矿井地质剖面图"},
{"pm2x","二线矿井地质剖面图"},{"pm3x","三线矿井地质剖面图"},
{"pm4x","四线矿井地质剖面图"}, {"pm5x","五线矿井地质剖面图"},
{"pm6x","六线矿井地质剖面图"},{"pm7x","七线矿井地质剖面图"},
{"pm8x","八线矿井地质剖面图"},{"pm9x","九线矿井地质剖面图"},
{"diban","某某矿地形地质图"}};
Thread tt = new Thread(new ThreadStart(set_database));
tt.IsBackground = true;
tt.Start();
this.btn_ok.Enabled = false;
}
/// <summary>
/// 如果存在同名的数据库删除。
/// </summary>
private void drop_database()
{
}
private void set_database()
{
string app_url = Application.StartupPath+"\\data\\";
string ip = this.txt_ip.Text.Trim();
string u_name = this.txt_user.Text.Trim();
string u_pwd = this.txt_pwd.Text.Trim();
string SqlConn = "Data Source="+ip+";Initial Catalog=master;User ID="+u_name+";Password="+u_pwd;
SqlConnection myconn = new SqlConnection(SqlConn);
this.label5.Text = "准备重建立工作空间数据库";
//先判断是否存在工作空间同名数据库
SqlCommand Cmd = new SqlCommand();
Cmd.CommandType = CommandType.Text;
Cmd.Connection = myconn;
try
{
myconn.Open();
Cmd.CommandText = "IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name ='workspace') DROP DATABASE workspace";
Cmd.ExecuteNonQuery();
//附加工作空间数据库
string csql1 = "CREATE DATABASE workspace ON ( NAME = workspace , FILENAME = '"+app_url+"workspace.mdf' )";
Cmd.CommandText=csql1;
Cmd.ExecuteNonQuery();
string sql= "RESTORE DATABASE workspace FROM DISK = '"+app_url+"workspace' WITH MOVE 'workspace_Data' TO '"+app_url+"workspace.mdf' ,MOVE 'workspace_log' TO '"+app_url+"workspace.log'";
//string sql= "RESTORE DATABASE workspace FROM DISK = '"+app_url+"workspace'";
Cmd.CommandText = sql;
Cmd.ExecuteNonQuery();
this.label5.Text = "工作空间数据库重建完毕....";
}
catch(SqlException ee)
{
MessageBox.Show("错误信息:"+ee.Message,"系统错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
this.Close();
}
finally
{
myconn.Close();
}
//建立所有的空数据库
try
{
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.Connection = myconn;
myconn.Open();
for(int i=0;i<25;i++)
{
this.label5.Text = "正在建立数据库 "+database_name[i,0];
// 先判断数据库存在不存在
cmd.CommandText = "IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name ='"+database_name[i,0]+ "') DROP DATABASE "+database_name[i,0];
cmd.ExecuteNonQuery(); //删除了同名数据库
//开始建立空的数据库
// cmd.CommandText="create database "+database_name[i,0];
// cmd.ExecuteNonQuery();
string csql = "CREATE DATABASE "+database_name[i,0]+" ON ( NAME = "+database_name[i,0]+" , FILENAME = '"+app_url+database_name[i,0]+".mdf' )";
cmd.CommandText = csql;
cmd.ExecuteNonQuery();
}
this.label5.Text = "所有数据库建立完成,准备打开工作空间....";
}
catch(SqlException ee)
{
MessageBox.Show("错误信息:"+ee.Message,"系统错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
this.Close();
}
finally
{
myconn.Close();
}
//打开工作空间,建立数据集
//打开地图工作空间
string WorkSpaceConn1 = "UID ="+u_name+";pwd ="+u_pwd;
string WorkSpaceConn0 = "Provider = SQLOLEDB;Driver = SQL Server;SERVER = "+ip+";Database =workspace ;Caption = 某矿信息管理系统;";//这个是工作空间名
this.label5.Text = "正在打开工作空间,准备建立数据源...";
bool aa = this.axSuperWorkspace1.Open(WorkSpaceConn0,WorkSpaceConn1);
if(!aa)
{
MessageBox.Show("工作空间打开失败","系统错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
this.Close();
}
else
{
try
{
for(int i=0;i<25;i++)
{
this.label5.Text = "正在建立数据源 "+database_name[i,1];
//开始一刚建立的数据库建立空的数据集
this.axSuperWorkspace1.CreateDataSource("Provider = SQLOLEDB;Driver = SQL Server;SERVER ="+ip+";Database = "+database_name[i,0],database_name[i,1],SuperMapLib.seEngineType.sceSQLPlus,false,false,false,"uid="+u_name+";pwd="+u_pwd);
//开始恢复数据库
}
this.axSuperWorkspace1.Save();
this.axSuperWorkspace1.Close();
this.label5.Text = "数据源重建成功,准备还原数据库...";
}
catch(SqlException ee)
{
MessageBox.Show("错误信息:"+ee.Message,"系统错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
this.Close();
}
//还原数据库
try
{
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.Connection = myconn;
myconn.Open();
for(int i=0;i<25;i++)
{
this.label5.Text = "正在还原数据 "+database_name[i,0];
string sql1= "RESTORE DATABASE "+database_name[i,0]+" FROM disk = '"+app_url+database_name[i,0]+"' WITH MOVE '"+database_name[i,0]+"_Data' TO '"+app_url+database_name[i,0]+".mdf', MOVE '"+database_name[i,0]+"_log' TO '"+app_url+database_name[i,0]+".log' ";
//string sql1= "RESTORE DATABASE "+database_name[i,0]+" FROM disk = '"+app_url+database_name[i,0]+"'";
cmd.CommandText = sql1;
cmd.ExecuteNonQuery();
}
MessageBox.Show("GIS服务器设置成功","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
catch(SqlException ee)
{
MessageBox.Show("错误信息:"+ee.Message,"系统错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
this.Close();
}
finally
{
myconn.Close();
}
}
}
private void checkBox1_CheckedChanged(object sender, System.EventArgs e)
{
if(this.checkBox1.Checked)
{
this.btn_ok.Enabled = true;
}
else
{
this.btn_ok.Enabled = false;
}
}
private void btn_esc_Click(object sender, System.EventArgs e)
{
this.Close();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -