• 从数据库某表转换并导入数据到另一表


    代码
    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Data.SqlClient;

    using System.Collections.Generic;
    using System.Text.RegularExpressions;

    public partial class IMPORTDB : System.Web.UI.Page
    {
        
    // static string connectionString = "Initial Catalog=kingslims;Data Source=192.168.2.232;User ID=sa;PassWord=;";
        static string connectionString = "";//"Initial Catalog=food;Data Source=192.168.2.232;User ID=sa;PassWord=;";
        static SqlConnection cn = new SqlConnection(connectionString);
        
    // static string sCommand = "SELECT 编号,父级编号,名称 FROM 项目总表 WHERE (父级编号 LIKE '01%') ORDER BY 父级编号";
        static string sCommand = "SELECT ID,no,parentno,name FROM temp  ORDER BY ID";

        
    // This is your data adapter that understands SQL databases:
        static SqlDataAdapter da = new SqlDataAdapter(sCommand, cn);

        
    // This is your table to hold the result set:
        static DataTable dataTable = new DataTable();
        
    static DataItemCollection DIC = new DataItemCollection();




        
    //插入FOOD数据库

        
    static System.Data.SqlClient.SqlConnection sqlConnection1 = new System.Data.SqlClient.SqlConnection("");//"Initial Catalog=Food;Data Source=192.168.2.232;User ID=sa;PassWord=;");

        
    static System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();


        
    protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write(Common.PreventingSQLInjectionAttacks(
    "ad'asdf"));
        }
        
    protected void Button1_Click(object sender, EventArgs e)
        {
            
    try
            {
                cn.Open();

                
    // Fill the data table with select statement's query results:
                int recordsAffected = da.Fill(dataTable);
                
    int IDCount = 1;
                Regex r1 
    = new Regex(@"^[0-9]*(\.[0-9]*)*[0-9]*$");
                Regex r2 
    = new Regex(@"^[0-9]{2}$");
                Regex r3 
    = new Regex(@"^[0-9]{2}\.[0-9]{2}$");
                Regex r4 
    = new Regex(@"^[0-9]{2}\.[0-9]{2}\.[0-9]{2}$");
                cn.Close();

                cmd.CommandType 
    = System.Data.CommandType.Text;

                cmd.Connection 
    = sqlConnection1;

                sqlConnection1.Open();




                
    if (recordsAffected > 0)
                {
                    
    foreach (DataRow dr in dataTable.Rows)
                    {
                        
    // Response.Write(dr[0].ToString()+"  "+dr[1].ToString()+"  "+dr[2].ToString()+"<br />");

                        DataItem DI 
    = new DataItem();
                        
    if (r1.IsMatch(dr[0].ToString()) && r2.IsMatch(dr[1].ToString()))//如果编号全为数字和小数点
                        {
                            DI.No 
    = dr[0].ToString();
                            DI.ParentNo 
    = dr[1].ToString();
                            DI.Name 
    = dr[2].ToString();
                            DI.ID 
    = IDCount;


                            cmd.CommandText 
    = "INSERT temp (id,no, parentno,name) VALUES (" + DI.ID + ", '" + DI.No.ToString() + "','" + DI.ParentNo + "','" + Common.PreventingSQLInjectionAttacks(DI.Name) + "')";
                            cmd.ExecuteNonQuery();

                            IDCount
    ++;
                        }

                    }



                    
    foreach (DataRow dr in dataTable.Rows)
                    {
                        
    // Response.Write(dr[0].ToString()+"  "+dr[1].ToString()+"  "+dr[2].ToString()+"<br />");

                        DataItem DI 
    = new DataItem();
                        
    if (r1.IsMatch(dr[0].ToString()) && r3.IsMatch(dr[1].ToString()))//如果编号全为数字和小数点
                        {
                            DI.No 
    = dr[0].ToString();
                            DI.ParentNo 
    = dr[1].ToString();
                            DI.Name 
    = dr[2].ToString();
                            DI.ID 
    = IDCount;


                            cmd.CommandText 
    = "INSERT temp (id,no, parentno,name) VALUES (" + DI.ID + ", '" + DI.No.ToString() + "','" + DI.ParentNo + "','" + DI.Name + "')";
                            cmd.ExecuteNonQuery();

                            IDCount
    ++;
                        }

                    }

                    
    foreach (DataRow dr in dataTable.Rows)
                    {
                        
    // Response.Write(dr[0].ToString()+"  "+dr[1].ToString()+"  "+dr[2].ToString()+"<br />");

                        DataItem DI 
    = new DataItem();
                        
    if (r1.IsMatch(dr[0].ToString()) && r4.IsMatch(dr[1].ToString()))//如果编号全为数字和小数点
                        {
                            DI.No 
    = dr[0].ToString();
                            DI.ParentNo 
    = dr[1].ToString();
                            DI.Name 
    = dr[2].ToString();
                            DI.ID 
    = IDCount;


                            cmd.CommandText 
    = "INSERT temp (id,no, parentno,name) VALUES (" + DI.ID + ", '" + DI.No.ToString() + "','" + DI.ParentNo + "','" + DI.Name + "')";
                            cmd.ExecuteNonQuery();

                            IDCount
    ++;
                        }

                    }
                }


            }
            
    catch (SqlException ex)
            {
                
    string msg = "";
                
    for (int i = 0; i < ex.Errors.Count; i++)
                {
                    msg 
    += "Error #" + i + " Message: " + ex.Errors[i].Message + "\n";
                }
                Response.Write(msg);
            }
            
    finally
            {
                
    if (cn.State != ConnectionState.Closed)
                {
                    cn.Close();
                }
                
    if (sqlConnection1.State != ConnectionState.Closed)
                {
                    sqlConnection1.Close();
                }
            }

        }

        
    public class DataItem
        {
            
    public int ID
            {
                
    get;
                
    set;
            }
            
    public string No
            {
                
    get;
                
    set;

            }
            
    public string ParentNo
            {
                
    get;

                
    set;
            }
            
    public string Name
            {
                
    get;
                
    set;

            }
        }
        
    public class DataItemCollection : List<DataItem>
        {

        }
        
    protected void Button2_Click(object sender, EventArgs e)
        {
            
    try
            {
                cn.Open();

                
    // Fill the data table with select statement's query results:
                int recordsAffected = da.Fill(dataTable);
                
    int IDCount = 1;

                cn.Close();

                cmd.CommandType 
    = System.Data.CommandType.Text;

                cmd.Connection 
    = sqlConnection1;

                sqlConnection1.Open();




                
    if (recordsAffected > 0)
                {
                    
    foreach (DataRow dr in dataTable.Rows)
                    {
                        
    // Response.Write(dr[0].ToString()+"  "+dr[1].ToString()+"  "+dr[2].ToString()+"<br />");

                        DataItem DI 
    = new DataItem();
                        DI.ID 
    = int.Parse(dr[0].ToString());
                        DI.No 
    = dr[1].ToString();
                        DI.ParentNo 
    = dr[2].ToString();
                        DI.Name 
    = dr[3].ToString();



                        
    //cmd.CommandText = "INSERT temp (id,no, parentno,name) VALUES (" + DI.ID + ", '" + DI.No.ToString() + "','" + DI.ParentNo + "','" + Common.PreventingSQLInjectionAttacks(DI.Name) + "')";
                        
    //cmd.ExecuteNonQuery();

                        DIC.Add(DI);


                    }



                }

                
    foreach (DataItem di in DIC)
                {
                    
    if (di.ParentNo == "01")
                    {
                        
    continue;
                    }
                    
    else
                    {
                        di.ParentNo 
    = FindParentNo(di.ParentNo);

                    }
                }




            }
            
    catch (SqlException ex)
            {
                
    string msg = "";
                
    for (int i = 0; i < ex.Errors.Count; i++)
                {
                    msg 
    += "Error #" + i + " Message: " + ex.Errors[i].Message + "\n";
                }
                Response.Write(msg);
            }
            
    finally
            {
                
    if (cn.State != ConnectionState.Closed)
                {
                    cn.Close();
                }
                
    if (sqlConnection1.State != ConnectionState.Closed)
                {
                    sqlConnection1.Close();
                }
            }
        }
        
    public string FindParentNo(string orgParentNo)
        {
            
    foreach (DataItem dii in DIC)
            {
                
    if (dii.No == orgParentNo)
                    
    return dii.ID.ToString();
            }
            
    return "not found";
        }
        
    protected void Button3_Click(object sender, EventArgs e)
        {
            
    try
            {
                cmd.CommandType 
    = System.Data.CommandType.Text;

                cmd.Connection 
    = sqlConnection1;

                sqlConnection1.Open();
                
    foreach (DataItem DI in DIC)
                {
                    cmd.CommandText 
    = "INSERT temp (id,no, parentno,name) VALUES (" + DI.ID + ", '" + DI.No.ToString() + "','" + DI.ParentNo + "','" + Common.PreventingSQLInjectionAttacks(DI.Name) + "')";
                    cmd.ExecuteNonQuery();
                }
            }
            
    catch (SqlException ex)
            {
                
    string msg = "";
                
    for (int i = 0; i < ex.Errors.Count; i++)
                {
                    msg 
    += "Error #" + i + " Message: " + ex.Errors[i].Message + "\n";
                }
                Response.Write(msg);
            }
            
    finally
            {
                
    if (cn.State != ConnectionState.Closed)
                {
                    cn.Close();
                }
                
    if (sqlConnection1.State != ConnectionState.Closed)
                {
                    sqlConnection1.Close();
                }
            }

        }
        
    protected void Button4_Click(object sender, EventArgs e)
        {
            
    try
            {
                cn.Open();

                
    // Fill the data table with select statement's query results:
                int recordsAffected = da.Fill(dataTable);
                
    int IDCount = 1;

                cn.Close();

                cmd.CommandType 
    = System.Data.CommandType.Text;

                cmd.Connection 
    = sqlConnection1;

                sqlConnection1.Open();




                
    if (recordsAffected > 0)
                {
                    
    foreach (DataRow dr in dataTable.Rows)
                    {
                        
    // Response.Write(dr[0].ToString()+"  "+dr[1].ToString()+"  "+dr[2].ToString()+"<br />");

                        DataItem DI 
    = new DataItem();
                        DI.ID 
    = int.Parse(dr[0].ToString());
                        DI.No 
    = dr[1].ToString();
                        DI.ParentNo 
    = dr[2].ToString();
                        DI.Name 
    = dr[3].ToString();



                        cmd.CommandText 
    = "INSERT standardclass (Standardclassid,parent, name) VALUES (" + DI.ID + "," + int.Parse(DI.ParentNo) + ",'" + Common.PreventingSQLInjectionAttacks(DI.Name) + "')";
                        cmd.ExecuteNonQuery();




                    }



                }





            }
            
    catch (SqlException ex)
            {
                
    string msg = "";
                
    for (int i = 0; i < ex.Errors.Count; i++)
                {
                    msg 
    += "Error #" + i + " Message: " + ex.Errors[i].Message + "\n";
                }
                Response.Write(msg);
            }
            
    finally
            {
                
    if (cn.State != ConnectionState.Closed)
                {
                    cn.Close();
                }
                
    if (sqlConnection1.State != ConnectionState.Closed)
                {
                    sqlConnection1.Close();
                }
            }
        }
    }
  • 相关阅读:
    python中open函数的使用
    内存地址转换与分段【转】
    VirtualBox虚拟机网络设置【转】
    Google免费的公共DNS服务器
    SSH数据交互过程【转】
    适合Web服务器的iptables规则【转】
    使用安装光盘建立本地yum仓库【转】
    RHCE从入门到精通视频教程【转】
    解决Apache启动时错误提示
    50个C/C++源代码网站【转】
  • 原文地址:https://www.cnblogs.com/meta/p/1614525.html
Copyright © 2020-2023  润新知