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

📄 index.aspx.cs

📁 .net下一个数据库数据互换
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Text;
using Microsoft.Win32;

namespace OldToNew.Update
{
	/// <summary>
	/// index 的摘要说明。
	/// </summary>
	public class index : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.Label errL;
		protected System.Web.UI.WebControls.TextBox pass;
		protected System.Web.UI.WebControls.TextBox uname;
		protected System.Web.UI.WebControls.TextBox sname;
		protected System.Web.UI.WebControls.TextBox newdb;
		protected System.Web.UI.WebControls.TextBox olddb;
		protected System.Web.UI.WebControls.TextBox ph1;
		protected System.Web.UI.WebControls.Button Button1;
		protected System.Web.UI.HtmlControls.HtmlForm Form1;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			// 在此处放置用户代码以初始化页面
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.Button1.Click += new System.EventHandler(this.Button1_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion
		private void LongTask()
		{
			string sql="";
			string constr="server=";
			constr += sname.Text+";uid=";
			constr += uname.Text+";pwd=";
			constr += pass.Text+";Database=";
			string oldcon=constr+olddb.Text+";";
			string newcon=constr+newdb.Text+";";
			System.Data.SqlClient.SqlConnection oldConn=new SqlConnection(oldcon);
			System.Data.SqlClient.SqlConnection newConn=new SqlConnection(newcon);

			if(!System.IO.Directory.Exists(ph1.Text))
			{
				errL.Text="您指定的路径不存在,请重新确认!";
				Session["State"] = 100;
				return;
			}
			//建立数据库连接,并测试连接
			try
			{
				oldConn.Open();
				newConn.Open();
				oldConn.Close();
				newConn.Close();
			}
			catch
			{
				Session["err"]="不能建立连接,请检查数据库和服务器的输入以及设置是否正确!";
				Session["State"] = 100;
				return;
			}

			//取学校类型
			string sctype="1";
			sql="select * from eSchoolType where selected=1";
			System.Data.SqlClient.SqlDataAdapter Adpp=new SqlDataAdapter(sql,oldConn);
			System.Data.DataTable dtp=new DataTable();
			Adpp.Fill(dtp);
			if(dtp.Rows.Count>0)
				sctype=dtp.Rows[0]["id"].ToString();

			//更新部门表
			try
			{
				int n=0;
				//先清除新表
				sql="delete from zDepartment";
				System.Data.SqlClient.SqlCommand newcmd=new SqlCommand(sql,newConn);
				newConn.Open();
				newcmd.ExecuteNonQuery();
				newConn.Close();
				//取旧表数据
				sql="select * from eDepartment";
				System.Data.SqlClient.SqlDataAdapter oldAdp=new SqlDataAdapter(sql,oldConn);
				System.Data.DataTable olddt=new DataTable();
				oldAdp.Fill(olddt);
				//取新表
				sql="select * from zDepartment";
				SqlCommand cmd=new SqlCommand(sql,newConn);
				System.Data.SqlClient.SqlDataAdapter newAdp=new SqlDataAdapter(sql,newConn);
				newAdp.SelectCommand=cmd;
				SqlCommandBuilder cmdb = new SqlCommandBuilder(newAdp);
				System.Data.DataSet newds =new DataSet();
				newAdp.Fill(newds);
				if(olddt.Rows.Count>0)
				{
					for(int i=0;i<olddt.Rows.Count;i++)
					{
						n=(int)(i*99/olddt.Rows.Count);
						DataRow row=newds.Tables[0].NewRow();
						//更改自动标号
						int newid=(int)olddt.Rows[i]["id"]-1;
						sql="DBCC CHECKIDENT(zDepartment,RESEED,"+newid.ToString()+")";
						SqlCommand cmdid=new SqlCommand(sql,newConn);
						newConn.Open();
						cmdid.ExecuteNonQuery();
						newConn.Close();
						//其他列
						for(int j=1;j<olddt.Rows[0].Table.Columns.Count;j++)
						{
							row[j]=olddt.Rows[i][j];
						}
						newds.Tables[0].Rows.Add(row);
						Session["State"] = n;
						newAdp.Update(newds);
					}
				}
			}
			catch(Exception ex)
			{
				Session["err"]="更新部门表失败,请检查原表eDepartment和新表zDepartment表和数据时候正确!\n"+ex.Message;
				Session["State"] = 100;
				return;
			}

			//更新年级表
			try
			{
				int n=0;
				//先清除新表
				sql="delete from eGrade";
				System.Data.SqlClient.SqlCommand newcmd=new SqlCommand(sql,newConn);
				newConn.Open();
				newcmd.ExecuteNonQuery();
				newConn.Close();
				//取旧表数据
				sql="select * from eGrade where pid="+sctype;
				System.Data.SqlClient.SqlDataAdapter oldAdp=new SqlDataAdapter(sql,oldConn);
				System.Data.DataTable olddt=new DataTable();
				oldAdp.Fill(olddt);
				//取新表
				sql="select * from eGrade";
				SqlCommand cmd=new SqlCommand(sql,newConn);
				System.Data.SqlClient.SqlDataAdapter newAdp=new SqlDataAdapter(sql,newConn);
				newAdp.SelectCommand=cmd;
				SqlCommandBuilder cmdb = new SqlCommandBuilder(newAdp);
				System.Data.DataSet newds =new DataSet();
				newAdp.Fill(newds);
				if(olddt.Rows.Count>0)
				{
					for(int i=0;i<olddt.Rows.Count;i++)
					{
						n=(int)(i*99/olddt.Rows.Count);
						DataRow row=newds.Tables[0].NewRow();
						//更改自动标号
						int newid=(int)olddt.Rows[i]["id"]-1;
						sql="DBCC CHECKIDENT(eGrade,RESEED,"+newid.ToString()+")";
						SqlCommand cmdid=new SqlCommand(sql,newConn);
						newConn.Open();
						cmdid.ExecuteNonQuery();
						newConn.Close();
						//其他列
						for(int j=1;j<olddt.Rows[0].Table.Columns.Count;j++)
						{
							row[j]=olddt.Rows[i][j];
						}
						//更改为新的schooltype
						row["pid"]=1;
						newds.Tables[0].Rows.Add(row);
						Session["State"] = n;
						newAdp.Update(newds);
					}
				}
			}
			catch(Exception ex)
			{
				Session["err"]="更新年级表失败,请检查eGrade表和数据时候正确!\n"+ex.Message;
				Session["State"] = 100;
				return;
			}

			//更新学科表
			try
			{
				int n=0;
				//先清除新表
				sql="delete from eSubject";
				System.Data.SqlClient.SqlCommand newcmd=new SqlCommand(sql,newConn);
				newConn.Open();
				newcmd.ExecuteNonQuery();
				newConn.Close();
				//取旧表数据
				sql="select * from eSubject where pid in (select subjecttype from eGrade where pid="+sctype+")";
				System.Data.SqlClient.SqlDataAdapter oldAdp=new SqlDataAdapter(sql,oldConn);
				System.Data.DataTable olddt=new DataTable();
				oldAdp.Fill(olddt);
				//取新表
				sql="select * from eSubject";
				SqlCommand cmd=new SqlCommand(sql,newConn);
				System.Data.SqlClient.SqlDataAdapter newAdp=new SqlDataAdapter(sql,newConn);
				newAdp.SelectCommand=cmd;
				SqlCommandBuilder cmdb = new SqlCommandBuilder(newAdp);
				System.Data.DataSet newds =new DataSet();
				newAdp.Fill(newds);
				if(olddt.Rows.Count>0)
				{
					for(int i=0;i<olddt.Rows.Count;i++)
					{
						n=(int)(i*99/olddt.Rows.Count);
						DataRow row=newds.Tables[0].NewRow();
						//更改自动标号
						int newid=(int)olddt.Rows[i]["id"]-1;
						sql="DBCC CHECKIDENT(eSubject,RESEED,"+newid.ToString()+")";
						SqlCommand cmdid=new SqlCommand(sql,newConn);
						newConn.Open();
						cmdid.ExecuteNonQuery();
						newConn.Close();
						//其他列
						for(int j=1;j<olddt.Rows[0].Table.Columns.Count;j++)
						{
							row[j]=olddt.Rows[i][j];
						}
						//更改为新的schooltype
						row["pid"]=1;
						if(olddt.Rows[i]["pid"].ToString().Trim()=="1")
							row["title"]="小学"+row["title"].ToString();
						if(olddt.Rows[i]["pid"].ToString().Trim()=="2")
							row["title"]="初中"+row["title"].ToString();
						if(olddt.Rows[i]["pid"].ToString().Trim()=="3")
							row["title"]="高中"+row["title"].ToString();

						newds.Tables[0].Rows.Add(row);
						Session["State"] = n;
						newAdp.Update(newds);
					}
				}
			}
			catch(Exception ex)
			{
				Session["err"]="更新学科表失败,请检查zSubject表和数据时候正确!\n"+ex.Message;
				Session["State"] = 100;
				return;
			}

			//更新用户表
			try
			{
				int n=0;
//				sql="delete from zUsers";
//				System.Data.SqlClient.SqlCommand newcmd=new SqlCommand(sql,newConn);
//				newConn.Open();
//				newcmd.ExecuteNonQuery();
//				newConn.Close();
				//取旧表数据
				sql="select * from eUser";
				System.Data.SqlClient.SqlDataAdapter oldAdp=new SqlDataAdapter(sql,oldConn);
				System.Data.DataTable olddt=new DataTable();
				oldAdp.Fill(olddt);
				//取新表
				sql="select * from zUsers";
				SqlCommand cmd=new SqlCommand(sql,newConn);
				System.Data.SqlClient.SqlDataAdapter newAdp=new SqlDataAdapter(sql,newConn);
				newAdp.SelectCommand=cmd;
				SqlCommandBuilder cmdb = new SqlCommandBuilder(newAdp);
				System.Data.DataSet newds =new DataSet();
				newAdp.Fill(newds);
				if(olddt.Rows.Count>0)
				{
					for(int i=0;i<olddt.Rows.Count;i++)
					{
						n=(int)(i*99/olddt.Rows.Count);
						//检查用户是否存在,如果存在,不增加
						string ouname=olddt.Rows[i]["Account"].ToString();
						sql="select * from zUsers where Account='"+ouname+"'";
						System.Data.DataTable dtou=new DataTable();
						System.Data.SqlClient.SqlDataAdapter adpou=new SqlDataAdapter(sql,newConn);
						adpou.Fill(dtou);
						if(dtou.Rows.Count>0)
							continue;
						//否则,增加
						DataRow row=newds.Tables[0].NewRow();
						///////////////////////////////////////////////////////////////////
						row["Account"]=olddt.Rows[i]["Account"];
						row["Password"]=System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(olddt.Rows[i]["Account"].ToString().Trim(),"SHA1");
						row["Question"]=olddt.Rows[i]["Question"];
						row["Answer"]=olddt.Rows[i]["Answer"];
						row["Nick"]=olddt.Rows[i]["Nick"];
						row["sex"]=olddt.Rows[i]["Gender"];
						row["DepartID"]=olddt.Rows[i]["Department"];
						//取部门名
						sql="select * from zDepartment where id='"+olddt.Rows[i]["Department"].ToString()+"'";
						System.Data.DataTable dtd=new DataTable();
						System.Data.SqlClient.SqlDataAdapter adpd=new SqlDataAdapter(sql,newConn);
						adpd.Fill(dtd);
						if(dtd.Rows.Count>0)
							row["DepartName"]=dtd.Rows[0]["title"];
						else
							row["DepartName"]="";

						row["RegistDate"]=System.DateTime.Now;
						row["Visible"]=olddt.Rows[i]["checked"];
						row["UserAudite"]=olddt.Rows[i]["status"].ToString().Trim()=="管理员"?1:0;
						row["Ring"]=olddt.Rows[i]["status"].ToString().Trim()=="管理员"?0:olddt.Rows[i]["status"].ToString().Trim()=="教师"?1:2;
						row["DiskMax"]=102400;
						row["DiskUse"]=((double)olddt.Rows[i]["DiskQuotaInUse"])/1024.0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -