搜索数据库并将结果保存到XML文件。我需要帮助 [英] Search a database and save the results to a XML file. I need help

查看:74
本文介绍了搜索数据库并将结果保存到XML文件。我需要帮助的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

https://fbcdn-sphotos-ea.akamaihd.net/hphotos-ak-frc3/1390605_210155089167800_573193228_n.jpg



https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-frc3/1390605_210155089167800_573193228_n.jpg

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Xml;

namespace BOOK
{
    public partial class Form1 : Form
    {
        SqlConnection cn = new SqlConnection(@"Data Source=KRISTIANBH\SQLEXPRESS;Initial Catalog=Books;Integrated Security=True");
        DataSet ds;

        public Form1()
        {
            InitializeComponent();
        }
        private void getAll()
        {
            string sSql = " select * from Details";
            SqlCommand cm = new SqlCommand(sSql, cn);
            SqlDataReader dr = null;

            try
            {
                cn.Open();
                dr = cm.ExecuteReader();
                listView1.Items.Clear();
                while (dr.Read())
                {
                    string BOOK_ID = dr["BOOK_ID"].ToString();
                    string BOOK_NAME = dr["BOOK_NAME"].ToString();
                    string AUTHOR = dr["AUTHOR"].ToString();
                    string ISBN = dr["ISBN"].ToString();
                    string DATE_PUBLISHED = dr["DATE_PUBLISHED"].ToString();
                    ListViewItem lv = listView1.Items.Add(BOOK_ID);
                    lv.SubItems.Add(BOOK_NAME);
                    lv.SubItems.Add(AUTHOR);
                    lv.SubItems.Add(ISBN);
                    lv.SubItems.Add(DATE_PUBLISHED);
                }
                dr.Close();


            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            finally
            {
                if (cn.State == ConnectionState.Open)
                    cn.Close();
            }
        }
        private void Form1_Load(object sender, EventArgs e)
        {

        }
        private void getAuthors()
        {
            string AuthorSearch;
            AuthorSearch = txtSearch.Text;
            string sSql = " select * from Details  where AUTHOR = '" + AuthorSearch + "'";
            SqlCommand cm = new SqlCommand(sSql, cn);
            SqlDataReader dr = null;

            try
            {
                cn.Open();
                dr = cm.ExecuteReader();
                if (dr.HasRows)
                {

                    while (dr.Read())
                    {
                        string BOOK_ID = dr["BOOK_ID"].ToString();
                        string BOOK_NAME = dr["BOOK_NAME"].ToString();
                        string AUTHOR = dr["AUTHOR"].ToString();
                        string ISBN = dr["ISBN"].ToString();
                        string DATE_PUBLISHED = dr["DATE_PUBLISHED"].ToString();
                        ListViewItem lv = listView1.Items.Add(BOOK_ID);
                        lv.SubItems.Add(BOOK_NAME);
                        lv.SubItems.Add(AUTHOR);
                        lv.SubItems.Add(ISBN);
                        lv.SubItems.Add(DATE_PUBLISHED);
                    }
                    dr.Close();

                }
                else
                {
                    listView1.Items.Add("No data found");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            finally
            {
                if (cn.State == ConnectionState.Open)
                    cn.Close();
            }

        }
        private void getISBN()
        {
            try
            {
                Double Number;
                Number = Convert.ToDouble(txtSearch.Text);
                string sSql = "Select * from Details where ISBN = '" + Number + "'";
                SqlCommand cm = new SqlCommand(sSql, cn);
                SqlDataReader dr = null;


                cn.Open();
                dr = cm.ExecuteReader();
                if (dr.HasRows)
                {

                    while (dr.Read())
                    {
                        string BOOK_ID = dr["BOOK_ID"].ToString();
                        string BOOK_NAME = dr["BOOK_NAME"].ToString();
                        string AUTHOR = dr["AUTHOR"].ToString();
                        string ISBN = dr["ISBN"].ToString();
                        string DATE_PUBLISHED = dr["DATE_PUBLISHED"].ToString();
                        ListViewItem lv = listView1.Items.Add(BOOK_ID);
                        lv.SubItems.Add(BOOK_NAME);
                        lv.SubItems.Add(AUTHOR);
                        lv.SubItems.Add(ISBN);
                        lv.SubItems.Add(DATE_PUBLISHED);
                    }
                    dr.Close();

                }
                else
                {
                    listView1.Items.Add("No data found");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            finally
            {
                if (cn.State == ConnectionState.Open)
                    cn.Close();
            }

        }
        private void getTitle()
        {
            string Title;
            Title = txtSearch.Text;
            string sSql = "Select * from Details where BOOK_NAME = '" + Title + "'";
            SqlCommand cm = new SqlCommand(sSql, cn);
            SqlDataReader dr = null;

            try
            {
                cn.Open();
                dr = cm.ExecuteReader();
                if (dr.HasRows)
                {

                    while (dr.Read())
                    {
                        string BOOK_ID = dr["BOOK_ID"].ToString();
                        string BOOK_NAME = dr["BOOK_NAME"].ToString();
                        string AUTHOR = dr["AUTHOR"].ToString();
                        string ISBN = dr["ISBN"].ToString();
                        string DATE_PUBLISHED = dr["DATE_PUBLISHED"].ToString();
                        ListViewItem lv = listView1.Items.Add(BOOK_ID);
                        lv.SubItems.Add(BOOK_NAME);
                        lv.SubItems.Add(AUTHOR);
                        lv.SubItems.Add(ISBN);
                        lv.SubItems.Add(DATE_PUBLISHED);
                    }
                    dr.Close();

                }
                else
                {
                    listView1.Items.Add("No data found");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            finally
            {
                if (cn.State == ConnectionState.Open)
                    cn.Close();
            }



        }
        private void btnSearch_Click(object sender, EventArgs e)
        {

            if (comboBox1.Text == "All")
            {
                getAll();
            }
            else if (comboBox1.Text == "Title")
            {
                getTitle();
            }
            else if (comboBox1.Text == "Author")
            {
                getAuthors();
            }
            else if (comboBox1.Text == "ISBN")
            {
                getISBN();
            }
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            bool changed = true;

            if (changed)
            {
                listView1.Items.Clear();
                txtSearch.Text = "";
            }
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            string query = "insert into Details (BOOK_ID,BOOK_NAME,AUTHOR,ISBN) "
                   + "Values ('" + txtBookID.Text.ToString() + "','" + txtTitle.Text.ToString() + "','" + txtAuthor.Text.ToString() + "','" + txtISBN.Text.ToString() + "')";
            SqlCommand cm = new SqlCommand(query, cn);
            SqlDataReader dr = null;

            try
            {
                cn.Open();
                dr = cm.ExecuteReader();
                MessageBox.Show("Data saved");
                while (dr.Read()) ;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                if (cn.State == ConnectionState.Open)
                    cn.Close();
            }

        }

        private void btnExport_Click(object sender, EventArgs e)
        {

        }

    } 
        }

推荐答案

将数据保存到XML文件的最简单方法是使用数据集和Dataset :: WriteXML方法。使用返回的数据集填充列表视图也相当容易。



The simplest way to save the data to XML file is to use a dataset and the Dataset::WriteXML method. And it's also fairly easy to use the returned dataset to fill the listview.

// Call our dataset fill and save method.
ds = saveDataset(@"SELECT * FROM BOOKS", @"c:\scratch\op.xml");
DataView dv = new DataView(ds.Tables[0]);

// Use the dataset to populate a listview.
myListView.Items.Clear();
foreach (DataRowView r in dv)
{
  ListViewItem lvi = myListView.Items.Add(r["BOOK_ID"]);
  lvi.SubItems.Add(r["BOOK_NAME"]);
  lvi.SubItems.Add(r["AUTHOR"]);
  // etc etc
}







// Create a dataset containing a single table and write it to disk.
private DataSet saveDataset(string sqlSelect, string xmlFilePath)
{
  DataSet ds = new DataSet();

  string connectionPath = @"Database=xxx;Server=yyy;User ID=zzz;Password=password;Network Library=dbmssocn;Connect Timeout=10;";

  using (SqlConnection connection = new SqlConnection(connectionPath))
  {
    SqlDataAdapter da = new SqlDataAdapter(sqlSelect, connection);
    da.Fill(ds);
    ds.WriteXml(xmlFilePath, XmlWriteMode.WriteSchema);
  }

  return ds;
}


这篇关于搜索数据库并将结果保存到XML文件。我需要帮助的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆