搜索数据库并将结果保存到XML文件。我需要帮助 [英] Search a database and save the results to a XML file. I need help
本文介绍了搜索数据库并将结果保存到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屋!
查看全文