⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 煤矿信息管理系统是基于SuperMap Object
💻 CS
📖 第 1 页 / 共 2 页
字号:
			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 + -