请问一下怎么把Sql Server中的一个表中的所有数据,变为xml,再把xml传到服务器上,把xml的数据导入到有相同结构的表中。这个过程怎么实现,我主要用的是Asp.Net,这种方法是否可行。我只是想把一个数据库中的数据,通过网络导入到另一个数据库中,有别的可行方法,麻烦也给我说一下,谢谢。

解决方案 »

  1.   

    DTS 或者是SSIS,
    不用转入转出这么麻烦,
    或者是直接备份和还原,
    都比LZ说的方式好!
      

  2.   

    贴一个access的 protected void Button2_Click(object sender, EventArgs e)
        {
            string ExtenName=System.IO.Path.GetExtension(FileUpload1.FileName);
            if (ExtenName != ".yt")
            {
                ClientScript.RegisterClientScriptBlock(this.GetType(),"","alert('不是指定类型的数据库')",true);
                return;
            }
            string serverPath = "UploadFiles/"+policeid+"/";
            string path=Server.MapPath(serverPath);
            DirectoryInfo dirInfo = new DirectoryInfo(path);
            if (!dirInfo.Exists)
            {
                Directory.CreateDirectory(path);
            }
            string file = System.IO.Path.GetFileName(FileUpload1.FileName);
            this.FileUpload1.SaveAs(path+file);
           /********把access导入sql**********/
            DataTable dt= GetList(path, file);
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DataTable sdt = GetSqlList(" csid='"+dt.Rows[i]["csid"].ToString()+"'");
                if (sdt.Rows.Count == 0)
                {//插入
                }
                else
                {//修改
                  }
            }
        }
      /// <summary>
        /// 查找access的数据列表
        /// </summary>
        /// <param name="serverPath">Server.MapPath</param>
        /// <param name="fileName">文件名</param>
        /// <returns></returns>
        public DataTable GetList(string serverPath,string fileName)
        {
            string path = serverPath + fileName;
            DataTable dt = OleFunction.dataTable("select * from Foreigner", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path);
            return dt;
        }olefunction代码
      /// <summary> 
        /// 返回指定Sql语句的DataTable 
        /// </summary> 
        /// <param name="sqlstr">传入的Sql语句</param> 
        /// <returns>DataTable</returns> 
        public static DataTable dataTable(string sqlstr,string Connection)
        {
            OleDbDataAdapter da = new OleDbDataAdapter();
            DataTable datatable = new DataTable();
            try
            {
                if (conn.State == ConnectionState.Closed)
                {
                    conn.ConnectionString = Connection;
                    comm.Connection = conn;
                    try
                    {
                        conn.Open();
                    }
                    catch (Exception e)
                    {
                        throw new Exception(e.Message);
                    }
                }
                comm.CommandType = CommandType.Text;
                comm.CommandText = sqlstr;
                da.SelectCommand = comm;
                da.Fill(datatable);
            }
            catch (Exception)
            {
            }
            finally
            {
                closeConnection();
            }
            return datatable;
        }html:
    <asp:FileUpload ID="FileUpload1" runat="server" />
            &nbsp;
            <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Button" />
      

  3.   

    3楼代码是把导出的access传入到sql
      

  4.   

    ......
    dim da as new SqlDataAdapter("select * from asdf",sqlconnection1)
    dim dt as new datatable
    da.fill(dt)dt.writexml(Server.MapPath("asdf.xml"))
    ......
    dim dt2 as new datatabledim da2 as new SqlDataAdapter("select * from asdf",sqlconnection2)
    da2.fill(dt2)
    dt2.merge(dt)
    da2.update(dt2)
    ......大概就是这个思路了
      

  5.   

    2楼说的“DTS 或者是SSIS”,我不是太清楚,能否详细说一下