亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#加XML文件非流讀寫方法

2023-05-15 12:29:36
字體:
來源:轉載
供稿:網友

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Xml; //重要
using System.IO;
// 本程序將演練XML文擋的讀與寫
// 也就是XMLReader和XMLWriter
namespace test11
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            FlueList();
        }
        // 刷新顯示ListBox顯示的內容
        private void FlueList()
        {
            try
            {
                listBox1.Items.Clear();
                FileStream fs = new FileStream("myTestXML.xml", FileMode.Open);
                XmlReader tr = XmlReader.Create(fs);
                while (!tr.EOF)
                {
                    if (tr.MoveToContent() == XmlNodeType.Element && tr.Name == "Username")
                    {
                        listBox1.Items.Add(tr.ReadElementString());
                    }
                    tr.Read();
                }
                fs.Close();
                tr.Close();
            }
            catch
            {
                // 導入時遇到無法導入數據,則文件出錯,將提示用戶刪除文件并建立新文件信息。
                MessageBox.Show("文擋不可用,無法導入!", "錯誤");
                if (MessageBox.Show("是否建立新的用戶文擋?/n此操作將刪除以前所有用戶數據", "程序提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                {
                    // 建立新文件,此用一個無參數函數重載。
                    CreateNewFile();
                }
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            string username = textBox1.Text;
            string password = textBox2.Text;
            // 需要檢查用戶名和密碼同時不能為空,并且不能和記錄相重復。
            if (username != "" && password != "" && checkReport(username, password))
            {
                try
                {
                    XmlDocument doc = new XmlDocument();
                    doc.Load("myTestXML.xml");
                    XmlElement User = doc.CreateElement("User");
                    User.SetAttribute("UserSettig", "Customer");
                    // 創建一個Username標簽
                    XmlElement newUsername = doc.CreateElement("Username");
                    newUsername.InnerText = username;
                    User.AppendChild(newUsername);
                    // 創建一個Password標簽
                    XmlElement newPassword = doc.CreateElement("Password");
                    newPassword.InnerText = password;
                    User.AppendChild(newPassword);
                    doc.DocumentElement.AppendChild(User);
                    // 將以上信息寫入到xml文件。
                    XmlTextWriter tr = new XmlTextWriter("myTestXML.xml", null);
                    tr.Formatting = Formatting.Indented;
                    doc.WriteContentTo(tr);
                    tr.Close();
                    MessageBox.Show("寫入成功!", "成功");
                    FlueList();
                    // 以上條件通過后,方可進行寫入操作。
                    // 此方法是將XML文擋重寫,記錄全無,因此舍棄此方法。
                    // 此方法在后面用于錯誤處理,建立新文件時。
                    /*
                    XmlWriterSettings settings = new XmlWriterSettings();
                    settings.Indent = true;
                    settings.NewLineOnAttributes = true;
                    XmlWriter thisWriter = XmlWriter.Create("myTestXML.xml", settings);
                    // 首行的聲明
                    thisWriter.WriteStartDocument();
                    // 開始輸入內容到文件中
                    thisWriter.WriteStartElement("User");
                    thisWriter.WriteAttributeString("UserSetting", "Customer");
                    thisWriter.WriteElementString("Username", username);
                    thisWriter.WriteElementString("Password", password);
                    thisWriter.WriteEndElement();
                    thisWriter.WriteEndDocument();
                    thisWriter.Flush();
                    thisWriter.Close();
                    MessageBox.Show("寫入成功!", "成功");
                    */
                }
                catch
                {
                    CreateNewFile(username, password);
                }
            }
            else
            {
                MessageBox.Show("請確定輸入是否正確或有重名和密碼重復", "請檢查");
            }
        }
        // 如果文件讀寫出錯,則刪除建立一個新文件。
        // 此函數有一個無參數的函數重載。
        // 好象這個有參數的函數也沒什么用處。唉……不知道當初怎么想的。
        private void CreateNewFile(string username, string password)
        {
            XmlWriterSettings settings = new XmlWriterSettings();
            settings.Indent = true;
            settings.NewLineOnAttributes = true;
            XmlWriter thisWriter = XmlWriter.Create("myTestXML.xml", settings);
            // 首行的聲明
            thisWriter.WriteStartDocument();
            // 開始輸入內容到文件中
            thisWriter.WriteStartElement("UserList");
            thisWriter.WriteStartElement("User");
            thisWriter.WriteAttributeString("UserSetting", "Customer");
            thisWriter.WriteElementString("Username", username);
            thisWriter.WriteElementString("Password", password);
            thisWriter.WriteEndElement();
            thisWriter.WriteEndElement();
            thisWriter.WriteEndDocument();
            thisWriter.Flush();
            thisWriter.Close();
            MessageBox.Show("寫入成功!", "成功");
        }
        // 上面創建新文件的函數的無參數重載部分。
        private void CreateNewFile()
        {
            try
            {
                // 如果文件存在則刪除該文件,建立正確的新文件。
                if (File.Exists("myTestXML.xml"))
                {
                    File.Delete("myTestXML.xml");
                }
                XmlWriterSettings settings = new XmlWriterSettings();
                settings.Indent = true;
                settings.NewLineOnAttributes = true;
                XmlWriter thisWriter = XmlWriter.Create("myTestXML.xml", settings);
                // 首行的聲明
                thisWriter.WriteStartDocument();
                // 開始輸入內容到文件中
                thisWriter.WriteStartElement("UserList");
                thisWriter.WriteEndElement();
                thisWriter.WriteEndDocument();
                thisWriter.Flush();
                thisWriter.Close();
            }
            catch
            {
                MessageBox.Show("建立新文擋失??!/n請檢查文件 myTestXML.xml 是否只讀!", "程序錯誤");
            }
        }
        // 檢查是否有重復的用戶名和密碼,此函數返回一個Bool值
        private bool checkReport(string username, string password)
        {
            try
            {
                FileStream fs = new FileStream("myTestXML.xml", FileMode.Open);
                XmlReader tr = XmlReader.Create(fs);
                string thisusername = "", thispassword = "";
                while (!tr.EOF)
                {
                    if (tr.MoveToContent() == XmlNodeType.Element && tr.Name == "Username")
                    {
                        thisusername = tr.ReadElementString();
                    }
                    else if (tr.MoveToContent() == XmlNodeType.Element && tr.Name == "Password")
                    {
                        thispassword = tr.ReadElementString();
                    }
                    if (thisusername == username && thispassword == password)
                    {
                        tr.Close();
                        fs.Close();
                        return false;
                    }
                    tr.Read();
                }
                fs.Close();
                tr.Close();
                return true;
            }
            catch
            {
                // 錯誤處理,如果文擋不存在,或者文擋錯誤,將刪除文擋,并從新建立。
                MessageBox.Show("文擋不可用,無法查詢!", "錯誤");
                if (MessageBox.Show("是否建立新的用戶文擋?/n此操作將刪除以前所有用戶數據", "程序提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                {
                    // 調用無參數函數重載版本建立新文件。
                    CreateNewFile();
                }
                return true;
            }
        }
        // 檢查用戶名和密碼是否可用的函數。
        private void button2_Click(object sender, EventArgs e)
        {
            if (textBox1.Text != "" && textBox2.Text != "" && checkReport(textBox1.Text, textBox2.Text))
            {
                MessageBox.Show("此用戶名和密碼可以用", "通過");
            }
            else
            {
                MessageBox.Show("此用戶名和密碼不可用", "未通過");
            }
        }
        // 退出該程序。
        private void button3_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
        }
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
韩日精品中文字幕| 热99精品只有里视频精品| 色悠久久久久综合先锋影音下载| 国产精品羞羞答答| 91精品国产综合久久香蕉的用户体验| 8090理伦午夜在线电影| 欧美国产日韩一区二区| 久久久久久久久久婷婷| 日韩欧美主播在线| 精品伊人久久97| 国产盗摄xxxx视频xxx69| 欧美日韩ab片| 在线视频国产日韩| 国产精品观看在线亚洲人成网| 亚洲免费视频在线观看| 国产精品96久久久久久又黄又硬| 欧美性精品220| 久久免费成人精品视频| 亚洲一区二区三区777| 国产精品久久91| 久久成人综合视频| 欧美成人在线免费视频| 伦伦影院午夜日韩欧美限制| 国产香蕉97碰碰久久人人| 久久久免费观看视频| 色噜噜狠狠色综合网图区| 成人激情春色网| 日韩电影在线观看永久视频免费网站| 中文字幕日韩精品有码视频| 亚洲影影院av| 亚洲加勒比久久88色综合| 亚洲最大福利网| 久久久久久久香蕉网| 久久成人综合视频| 91精品国产综合久久香蕉| 91精品国产乱码久久久久久久久| 久久精品国产成人精品| 深夜福利日韩在线看| 日韩在线视频二区| 成人免费午夜电影| 欧美国产中文字幕| 欧美一级淫片丝袜脚交| 亚洲乱亚洲乱妇无码| 久久久女女女女999久久| 久久久国产精品视频| 亚洲欧美综合区自拍另类| 中文字幕精品—区二区| 亚洲一级黄色片| 欧洲美女免费图片一区| 国产一区二区丝袜高跟鞋图片| 亚洲男人天堂视频| 国产精品成人观看视频国产奇米| 亚洲欧美国产日韩天堂区| 久久香蕉国产线看观看av| 欧美激情videos| 国产91精品高潮白浆喷水| 亚洲成人av片在线观看| 国产欧美韩国高清| 成人免费视频在线观看超级碰| 91豆花精品一区| 国产精品99久久久久久白浆小说| 久久久久久久一区二区三区| 中文字幕国产亚洲2019| 国产精品444| 国产精彩精品视频| 亚洲美女av在线| 欧美在线不卡区| 国产精品久久久久国产a级| 色琪琪综合男人的天堂aⅴ视频| 日本欧美黄网站| 欧美激情网站在线观看| 亚洲大胆人体视频| 精品久久久久久久大神国产| 亚洲欧美另类人妖| www.日本久久久久com.| 国产拍精品一二三| 欧美日韩性视频在线| 97色在线播放视频| 成人在线免费观看视视频| 国产一区玩具在线观看| 亚洲第一色中文字幕| 91在线网站视频| 亚洲香蕉av在线一区二区三区| 成人黄色片网站| 国产亚洲视频中文字幕视频| 日韩中文字幕在线视频播放| 91福利视频网| 亚洲国产毛片完整版| 3344国产精品免费看| 国产精品自产拍在线观| 精品久久久国产| 91av免费观看91av精品在线| 国产欧美精品日韩| 亚洲国产欧美在线成人app| 97在线观看免费| 国产精品久久久久久搜索| 日韩欧美在线视频免费观看| 91精品国产91久久久久| 日本aⅴ大伊香蕉精品视频| 青青青国产精品一区二区| 日韩有码片在线观看| 欧美黄网免费在线观看| 欧美国产精品日韩| 国产免费一区二区三区香蕉精| 国产成人精品av在线| 欧美猛交ⅹxxx乱大交视频| 亚洲成人中文字幕| 久久久久久亚洲| 欧美日韩国产一区二区| 国产视频亚洲视频| www国产精品com| 97精品视频在线观看| 国产一区二区三区久久精品| 中文字幕欧美国内| 久久久999精品视频| 亲爱的老师9免费观看全集电视剧| 久久久精品日本| 久久久免费精品视频| 亚洲免费人成在线视频观看| 亚洲性av在线| 日韩av一区在线观看| 色阁综合伊人av| 国产成人免费91av在线| 国产精品一区二区在线| 欧美精品性视频| 狠狠综合久久av一区二区小说| 国产精品一区二区久久精品| 日韩在线观看免费av| 7m第一福利500精品视频| 97国产一区二区精品久久呦| 欧美日韩亚洲一区二| 亚洲一区二区三区在线视频| 精品av在线播放| 久久久久久久久久久久av| 国产成人精品最新| 欧美裸体男粗大视频在线观看| 亚洲美女中文字幕| 成人精品aaaa网站| 亚洲石原莉奈一区二区在线观看| 国产精品成人av性教育| 97avcom| 亚洲欧洲一区二区三区久久| 国产精品av网站| 国产精品pans私拍| 深夜福利亚洲导航| 成人免费午夜电影| 亚洲国产精品一区二区久| 中国日韩欧美久久久久久久久| 69视频在线播放| 成人激情视频在线| 亚洲黄一区二区| 欧美日韩亚洲国产一区| 日韩精品免费视频| 欧美交受高潮1| 久久精品国产免费观看| 日本精品久久久久久久| 美女国内精品自产拍在线播放| 亚洲aⅴ日韩av电影在线观看| 久久久久久久97| 国语自产精品视频在线看抢先版图片| 国产精品99一区| 亚洲国产精品专区久久| 深夜福利亚洲导航| 欧美激情2020午夜免费观看|