强大的 将XML文件的数据导入到数据库的 程序 只需输入xml文件名即可自动创建

原创 2012年08月02日 15:38:49

通过网上查资料并经过多天整理好的一个程序,以供需要的朋友学习:

前台:

 

 

后台:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

namespace XML
{
    public partial class tst : System.Web.UI.Page
    {
        protected DataSet dataSetXml;
        protected DataTable dataTableXml;
        protected string tableName;
        protected string strConn = ConfigurationManager.AppSettings["ConnectionString2"].ToString();
        protected void Page_Load(object sender, EventArgs e)
        {
           
        }
        protected void buttonSubmit_Click(object sender, EventArgs e)
        {
            Message.Text = "";
            dataSetXml = new DataSet();
            dataTableXml = new DataTable();
            try
            {
                dataSetXml.ReadXml(HttpContext.Current.Server.MapPath(textBoxXml.Text));//读取xml地址
                for (int i = 0; i < dataSetXml.Tables.Count;i++ ) {

                dataTableXml = dataSetXml.Tables[i];//循环取出所有的表
                }
             
                GridView1.DataSource = dataTableXml.DefaultView;//可查看所有表的数据
                GridView1.DataBind();
                tableName = textBoxXml.Text.Substring(0, textBoxXml.Text.Length - 4);

            }
            catch
            {
                Message.Text = "不能打开Xml文件或者是Xml文件格式错误";
            }
            if (dataTableXml.Rows.Count > 0)
            {
                TableCheck();
                TableInsert();
            }
        }
        /// <summary>
        /// 检查并创建表
        /// </summary>
        private void TableCheck()
        {
            SqlConnection conn = new SqlConnection(strConn);
            try
            {
                conn.Open();
                int count = 0;
                //conn.Open();
                DataTable schemaTable = conn.GetSchema("TABLES", new string[] { "asd", tableName });
                string sqlCmd = "";
                for (int j = 0; j < dataSetXml.Tables.Count; j++)//循环所有的表
                {
                    sqlCmd = "create table " + dataSetXml.Tables[j] + "(";//循环创建所有的表名

                if (schemaTable.Rows.Count < 1)
                {
                        
                     for (int i = 0; i <dataSetXml.Tables[j].Columns.Count; i++)
                      {
                          sqlCmd +=dataSetXml.Tables[j].Columns[i].ToString()+ " varchar(200),";//循环创建所有表的列名
                      }               
                 }
                    sqlCmd = sqlCmd.Substring(0, sqlCmd.Length - 1) + ")";//删除最后一个“,”符号                
                    SqlCommand createcmd = new SqlCommand();
                    createcmd.Connection = conn;
                    createcmd.CommandText = sqlCmd;
                    createcmd.ExecuteNonQuery();
                }
            }
            catch(Exception e)
            {
                Message.Text = e.Message;// "SQL命令或语句连接出问题";
            }
            finally
            {
                conn.Close();
            }
        }
        /// <summary>
        /// 对表进行插入数据操作
        /// </summary>
        private void TableInsert()
        {
            //OracleConnection conn = new OracleConnection(strConn);
            SqlConnection conn = new SqlConnection(strConn);
            try
            {
                conn.Open();
                for (int k = 0; k < dataSetXml.Tables.Count;k++ )//循环所有的表
                {
                    foreach (DataRow dr in dataSetXml.Tables[k].Rows)
                    {
                        string  sqlCmd = "Insert Into " + dataSetXml.Tables[k] + "(";//循环插入所有的表
                        for (int i = 0; i < dataSetXml.Tables[k].Columns.Count; i++)//循环所有表的列
                        {
                            sqlCmd += dataSetXml.Tables[k].Columns[i].ColumnName.ToString() + ",";//循环用‘,’隔开
                        }
                        sqlCmd = sqlCmd.Substring(0, sqlCmd.Length - 1) + ") Values(";
                        for (int j = 0; j< dataSetXml.Tables[k].Columns.Count; j++)//循环用‘‘’隔开
                        {
                            sqlCmd += "'" + dr[j].ToString() + "',";
                        }
                          sqlCmd = sqlCmd.Substring(0, sqlCmd.Length - 1) + ")";
                         SqlCommand cmd = new SqlCommand(sqlCmd, conn);
                        cmd.ExecuteNonQuery();
                        Message.Text = "Xml文件中的数据成功加载到数据库中!";
                    }
                }
        }
            catch(Exception e)
            {
                Message.Text = e.Message;//在添加数据时产生了错误!";
            }
            finally
            {
                conn.Close();
            }
        }   
    }
}

怎么取出数据库中表的数据生成XML文件

//ReadFrData.java package com.xie.xmlparse.dom4j; import java.sql.Connection; import java.sql.Pre...
  • chenjing_blog
  • chenjing_blog
  • 2016年05月17日 21:16
  • 2263

把数据库库表记录转成XML

 package org.jict.xml;import org.jdom.*;import org.jdom.output.*;import java.sql.*;import java.io.*;...
  • success_dream
  • success_dream
  • 2006年11月18日 16:32
  • 830

用sqlserver过程把xml文件导入数据库

create proc   p_mod_mxl    @xml     Ntext   --注意:如果不用Ntext或nvarchar类型,xml内容里有中文会报错。 as   DECLAR...
  • lichangzai
  • lichangzai
  • 2013年01月29日 13:04
  • 3209

xml与数据库中数据的导入导出

这是我一个晚上做出来的,因为要去做其他的项目,所以只实现了对特定数据库的xml操作,不过我觉得这是学习xml挺不错的参考代码和文档 使用说明: 要先导入xml.sql数据库,可以用navicat导入,...
  • u014427391
  • u014427391
  • 2015年12月15日 14:46
  • 3312

从数据库中读取数据,并写入xml文件中(dom4j)

  //ReadFrData.javapackage com.xie.xmlparse.dom4j;import java.sql.Connection;import java.sql.Prepare...
  • centre10
  • centre10
  • 2010年10月12日 16:38
  • 6925

将XML文档写入数据库

1.在操练之前,先准备一个XML文件FirstXml.xml和FirstXml.xsd,并且这两个文件都在根目录下面,其内容分别如下:FirstXml.xml{       1     AAA  ...
  • qinghecool
  • qinghecool
  • 2007年12月04日 11:28
  • 5759

JAVA学习之 将xml导入到数据库

我们知道向数据库中插入数将xml导入到数据库将xml导入到数据库据的方式有很多种,以前接触最多的都是通过sql语句简单的插入一条数据,今天要学习是将xml中的数据一次添加到数据库中:      首...
  • jly4758
  • jly4758
  • 2014年09月27日 15:20
  • 6396

创建Xml文件,并解析该Xml数据,并插入数据库

工作中对xml的操作比较多,这里实现一种。使用dom4j解析xml、 流程: 创建xml----->然后解析--------》然后将数据用Log打印出来。 创建xml: package ...
  • xxm282828
  • xxm282828
  • 2014年03月31日 22:28
  • 2293

怎么将数据保存成XML格式的例子

protected string strXmlFile;  protected XmlDocument objXmlDoc = new XmlDocument();  public XmlContro...
  • zhangjianbo03642
  • zhangjianbo03642
  • 2007年06月08日 08:54
  • 1441

java使用Xstream注解 解析xml文件 并将数据导入MySql数据库中

需要解析的xml文件如下: java类一一xml文件的第一层 java类一一xml文件的第二层 java类一一xml文件的第三层 java类一一xml文件的第四层 ...
  • rainbow_m
  • rainbow_m
  • 2015年08月19日 17:00
  • 937
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:强大的 将XML文件的数据导入到数据库的 程序 只需输入xml文件名即可自动创建
举报原因:
原因补充:

(最多只允许输入30个字)