📄 index.aspx.cs
字号:
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 + -