XML的数据提取和保存到数据库中

来源:互联网 发布:人工智能取代人类 编辑:程序博客网 时间:2024/04/28 20:04
//读取XML里的数据并把数据保存到数据库中        protected void Button2_Click(object sender, EventArgs e)        {            List<book> bookList = book.GetbookList();//获取数据源            //XElement doc = XElement.Load( "E:\\1.课程资料\\7.asp.net\\2.asp.net(下)\\1.复习\\1.c#\\12.linQ\\LINQ\\Authors.xml");            XElement doc = XElement.Load(Server.MapPath("XML.xml"));            //然后是开始查询。两个数据源将通过图书ISBN字符串值联接在一起,因此该查询要遍历的是XML文档中的            //“book”元素而不是“author”元素,接着就是联接两个数据源            var authorsByBooks =                from bookk in doc.DescendantsAndSelf("book")                join bookInfo in bookList on bookk.Attribute("isbn").Value                   equals bookInfo.ISBN                //现在该查询为XML文档中的图书建立了变量authorId,已知“<author>”元素是“<book>”元素的父元素                //因此可以使用XElement类的Parent方法毫不费事的获取该元素及其Id属性                let authorId = bookk.Parent.Attribute("id").Value                //设置分组结果按图数标题进行排序                orderby bookInfo.Title                //然后该查询对作者Id进行分组                group new { AuthorId = authorId }                    //按照已获取到值得图书标题分组                by bookInfo.Title                    into groupedAuthors//重新定义一个字段                    select new                    {                        Title = groupedAuthors.Key,                        Authors = groupedAuthors                    };            //最后,当结束数据处理时,函数会遍历查询结果并首先显示每个作者ID分组中作为键值的图书标题            foreach (var bookk in authorsByBooks)            {                lblBooks.ToolTip += string.Format("{0}", bookk.Title);                foreach (var author in bookk.Authors)                {                    //string str=string.Format("{0}<br/>", author.AuthorId);                    lblBooks.Text += string.Format("{0}<br/>", author.AuthorId);                    //string name = lblBooks.Text.Substring('*',5);                    int path = Convert.ToInt32(author.AuthorId);                    show(path);                }            }            //虽然操作俩种截然不同的数据类型,但查询语句的基本形式根本没有任何变化        }
//读取XML里的数据并把数据保存到数据库中
        protected void Button2_Click(object sender, EventArgs e)
        {
            List<book> bookList = book.GetbookList();//获取数据源
            //XElement doc = XElement.Load( "E:\\1.课程资料\\7.asp.net\\2.asp.net(下)\\1.复习\\1.c#\\12.linQ\\LINQ\\Authors.xml");
            XElement doc = XElement.Load(Server.MapPath("XML.xml"));
            //然后是开始查询。两个数据源将通过图书ISBN字符串值联接在一起,因此该查询要遍历的是XML文档中的
            //“book”元素而不是“author”元素,接着就是联接两个数据源
            var authorsByBooks =
                from bookk in doc.DescendantsAndSelf("book")
                join bookInfo in bookList on bookk.Attribute("isbn").Value
                   equals bookInfo.ISBN
                //现在该查询为XML文档中的图书建立了变量authorId,已知“<author>”元素是“<book>”元素的父元素
                //因此可以使用XElement类的Parent方法毫不费事的获取该元素及其Id属性
                let authorId = bookk.Parent.Attribute("id").Value
                //设置分组结果按图数标题进行排序
                orderby bookInfo.Title
                //然后该查询对作者Id进行分组
                group new { AuthorId = authorId }
                    //按照已获取到值得图书标题分组
                by bookInfo.Title
                    into groupedAuthors//重新定义一个字段
                    select new
                    {
                        Title = groupedAuthors.Key,
                        Authors = groupedAuthors
                    };
            //最后,当结束数据处理时,函数会遍历查询结果并首先显示每个作者ID分组中作为键值的图书标题
            foreach (var bookk in authorsByBooks)
            {
                lblBooks.ToolTip += string.Format("{0}", bookk.Title);
                foreach (var author in bookk.Authors)
                {
                    //string str=string.Format("{0}<br/>", author.AuthorId);
                    lblBooks.Text += string.Format("{0}<br/>", author.AuthorId);
                    //string name = lblBooks.Text.Substring('*',5);
                    int path = Convert.ToInt32(author.AuthorId);
                    show(path);
                }
            }
            //虽然操作俩种截然不同的数据类型,但查询语句的基本形式根本没有任何变化
        }

//读取XML里的数据并把数据保存到数据库中
        protected void Button2_Click(object sender, EventArgs e)
        {
            List<book> bookList = book.GetbookList();//获取数据源
            //XElement doc = XElement.Load( "E:\\1.课程资料\\7.asp.net\\2.asp.net(下)\\1.复习\\1.c#\\12.linQ\\LINQ\\Authors.xml");
            XElement doc = XElement.Load(Server.MapPath("XML.xml"));
            //然后是开始查询。两个数据源将通过图书ISBN字符串值联接在一起,因此该查询要遍历的是XML文档中的
            //“book”元素而不是“author”元素,接着就是联接两个数据源
            var authorsByBooks =
                from bookk in doc.DescendantsAndSelf("book")
                join bookInfo in bookList on bookk.Attribute("isbn").Value
                   equals bookInfo.ISBN
                //现在该查询为XML文档中的图书建立了变量authorId,已知“<author>”元素是“<book>”元素的父元素
                //因此可以使用XElement类的Parent方法毫不费事的获取该元素及其Id属性

                let authorId = bookk.Parent.Attribute("id").Value
                //设置分组结果按图数标题进行排序
                orderby bookInfo.Title
                //然后该查询对作者Id进行分组
                group new { AuthorId = authorId }
                    //按照已获取到值得图书标题分组
                by bookInfo.Title
                    into groupedAuthors//重新定义一个字段
                    select new
                    {
                        Title = groupedAuthors.Key,
                        Authors = groupedAuthors
                    };
            //最后,当结束数据处理时,函数会遍历查询结果并首先显示每个作者ID分组中作为键值的图书标题
            foreach (var bookk in authorsByBooks)
            {
                lblBooks.ToolTip += string.Format("{0}", bookk.Title);
                foreach (var author in bookk.Authors)
                {
                    //string str=string.Format("{0}<br/>", author.AuthorId);
                    lblBooks.Text += string.Format("{0}<br/>", author.AuthorId);
                    //string name = lblBooks.Text.Substring('*',5);
                    int path = Convert.ToInt32(author.AuthorId);
                    show(path);
                }
            }
            //虽然操作俩种截然不同的数据类型,但查询语句的基本形式根本没有任何变化
        }

//读取XML里的数据并把数据保存到数据库中
        protected void Button2_Click(object sender, EventArgs e)
        {
            List<book> bookList = book.GetbookList();//获取数据源
            //XElement doc = XElement.Load( "E:\\1.课程资料\\7.asp.net\\2.asp.net(下)\\1.复习\\1.c#\\12.linQ\\LINQ\\Authors.xml");
            XElement doc = XElement.Load(Server.MapPath("XML.xml"));
            //然后是开始查询。两个数据源将通过图书ISBN字符串值联接在一起,因此该查询要遍历的是XML文档中的
            //“book”元素而不是“author”元素,接着就是联接两个数据源
            var authorsByBooks =
                from bookk in doc.DescendantsAndSelf("book")
                join bookInfo in bookList on bookk.Attribute("isbn").Value
                   equals bookInfo.ISBN
                //现在该查询为XML文档中的图书建立了变量authorId,已知“<author>”元素是“<book>”元素的父元素
                //因此可以使用XElement类的Parent方法毫不费事的获取该元素及其Id属性
                let authorId = bookk.Parent.Attribute("id").Value
                //设置分组结果按图数标题进行排序
                orderby bookInfo.Title
                //然后该查询对作者Id进行分组
                group new { AuthorId = authorId }
                    //按照已获取到值得图书标题分组
                by bookInfo.Title
                    into groupedAuthors//重新定义一个字段
                    select new
                    {
                        Title = groupedAuthors.Key,
                        Authors = groupedAuthors
                    };
            //最后,当结束数据处理时,函数会遍历查询结果并首先显示每个作者ID分组中作为键值的图书标题
            foreach (var bookk in authorsByBooks)
            {
                lblBooks.ToolTip += string.Format("{0}", bookk.Title);
                foreach (var author in bookk.Authors)
                {
                    //string str=string.Format("{0}<br/>", author.AuthorId);
                    lblBooks.Text += string.Format("{0}<br/>", author.AuthorId);
                    //string name = lblBooks.Text.Substring('*',5);
                    int path = Convert.ToInt32(author.AuthorId);
                    show(path);
                }
            }
            //虽然操作俩种截然不同的数据类型,但查询语句的基本形式根本没有任何变化
        }
//像数据库中插入数据
        private void show(int path)
        {
            using (SqlConnection conn = new SqlConnection(strConn))
            {
                string str = string.Format("insert into book(bookid)  values ({0})", path);
                SqlCommand command = new SqlCommand(str, conn);
                conn.Open();
                command.ExecuteNonQuery();
            }     
        }
原创粉丝点击