📄 form2.cs
字号:
using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Xml;
namespace WSonSPDemo
{
public partial class Form2 : Form
{
DataTable dt1 = null;
DataTable dt2 = null;
DataSet ds = null;
int CurrentTable ;
public Form2()
{
InitializeComponent();
}
private void LoadData()
{
int loadTimeSpan;
XmlDocument doc = new XmlDocument();
try
{
int t1= System.Environment.TickCount;
//将XML文件读入内存
doc.Load(@"\Storage Card\books.xml");
int t2 = System.Environment.TickCount;
loadTimeSpan = t2 - t1;
MessageBox.Show("LoadDocTimeSpan:"+loadTimeSpan);
}
catch (XmlException ex)
{
MessageBox.Show(ex.Message);
return;
}
Cursor.Current = Cursors.WaitCursor;
//通过XmlNodeReader把XmlDocument中的数据填充到dataSet中去
XmlNodeReader reader = new XmlNodeReader(doc);
int DataSetFillSpan;
ds = new DataSet();
int t3 = System.Environment.TickCount;
ds.ReadXml(reader);
int t4 = System.Environment.TickCount;
DataSetFillSpan = t4 - t3;
reader.Close();
//因为XML文件里面存在Book和Author的一对多的主从表
dt1 = ds.Tables[0];
dt2 = ds.Tables[1];
//设置默认显示的表
DG_Book.DataSource = ds.Tables[0].DefaultView;
CurrentTable = 0;
Cursor.Current = Cursors.Default;
MessageBox.Show("Fill dataset timeSpan:"+DataSetFillSpan);
}
private void Form2_Load(object sender, EventArgs e)
{
LoadData();
}
/// <summary>
/// 显示特定行的信息
/// </summary>
/// <param name="bookIndex">行号</param>
private void DisplayDataRow(int bookIndex)
{
String line = String.Empty;
DataTable dt = CurrentTable == 0 ? dt1 : dt2;
DataRow dr = dt.Rows[bookIndex];
int col = 0;
foreach (object value in dr.ItemArray)
{
line += (dt.Columns[col].ColumnName + ": " +
value.ToString() + "\r\n");
col++;
}
MessageBox.Show(line);
}
private void menuItem3_Click(object sender, EventArgs e)
{
int bookIndex = DG_Book.CurrentRowIndex;
DisplayDataRow(bookIndex);
}
private void menuItem4_Click(object sender, EventArgs e)
{
SwitchTable();
}
private void menuItem5_Click(object sender, EventArgs e)
{
SwitchTable();
}
/// <summary>
/// 在两个表之间切换显示
/// </summary>
private void SwitchTable()
{
if (CurrentTable == 0)
{
DG_Book.DataSource = dt2.DefaultView;
CurrentTable = 1;
this.Text = "Author Table:";
}
else
{
DG_Book.DataSource = dt1.DefaultView;
CurrentTable = 0;
this.Text = "Book Table:";
}
}
private void menuItem1_Click(object sender, EventArgs e)
{
//关闭的时候输出带Schema的XML文件
if (ds != null)
{
ds.WriteXml(@"\Storage Card\bookstore.xml", XmlWriteMode.WriteSchema);
//ds.WriteXmlSchema(@"\Storage Card\bookstore.xsd");
}
Application.Exit();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -