Contact.cs类:
public class Contact
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Company { get; set; }
public string City { get; set; }
public string Telephone { get; set; }
public string Fax { get; set; }
public string Email { get; set; }
}
LinqXmlContactsBLManager.cs
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Xml.Linq;
namespace LinqXmlContactsBLL
{
public class LinqXmlContactsBLManager
{
public List<Contact> GetAllContacts()
{
XDocument xmlDocument = XDocument.Load("Contacts.xml");
IEnumerable<XElement> xmlContacts = xmlDocument.Element("Contacts")
.Elements("Contact");
List<Contact> contacts = new List<Contact>();
//获取联系人列表
foreach (XElement i in xmlContacts)
{
Contact contact = new Contact();
contact.Id = int.Parse(i.Attribute("Id").Value);
contact.FirstName = i.Element("FirstName").Value;
contact.LastName = i.Element("LastName").Value;
contact.Company = i.Element("Company").Value;
contact.City = i.Element("City").Value;
contact.Telephone = i.Element("Telephone").Value;
contact.Fax = i.Element("Fax").Value;
contact.Email = i.Element("Email").Value;
contacts.Add(contact);
}
return contacts;
}
public Contact GetContactById(int id)
{
XDocument xmlDocument = XDocument.Load("Contacts.xml");
XElement xmlContact = xmlDocument.Element("Contacts").Elements("Contact")
.Where(a => a.Attribute("Id").Value == id.ToString()).FirstOrDefault();
Contact contact = new Contact();
contact.Id = int.Parse(xmlContact.Attribute("Id").Value);
contact.FirstName = xmlContact.Element("FirstName").Value;
contact.LastName = xmlContact.Element("LastName").Value;
contact.Company = xmlContact.Element("Company").Value;
contact.City = xmlContact.Element("City").Value;
contact.Telephone = xmlContact.Element("Telephone").Value;
contact.Fax = xmlContact.Element("Fax").Value;
contact.Email = xmlContact.Element("Email").Value;
return contact;
}
public void AddContact(Contact contact)
{
XDocument xmlDocument = XDocument.Load("Contacts.xml");
//将值插入联系人xml文档
xmlDocument.Element("Contacts").Add(
new XElement("Contact",new XAttribute("Id",contact.Id),new XElement("FirstName",contact.FirstName),new XElement("LastName",contact.LastName),new XElement("Company",contact.Company),new XElement("City",contact.City),new XElement("Telephone",contact.Telephone),new XElement("Fax",contact.Fax),new XElement("Email",contact.Email)
));
xmlDocument.Save("Contacts.xml");
}
public void UpdateContact(Contact contact)
{
XDocument xmlDocument = XDocument.Load("Contacts.xml");
//通过ID更新联系人
XElement xmlContact = xmlDocument.Element("Contacts").Elements("Contact")
.Where(x => x.Attribute("Id").Value == contact.Id.ToString())
.FirstOrDefault();
//更新联系人
xmlContact.SetElementValue("FirstName",contact.FirstName);
xmlContact.SetElementValue("LastName",contact.LastName);
xmlContact.SetElementValue("Company",contact.Company);
xmlContact.SetElementValue("City",contact.City);
xmlContact.SetElementValue("Telephone",contact.Telephone);
xmlContact.SetElementValue("Fax",contact.Fax);
xmlContact.SetElementValue("Email",contact.Email);
xmlDocument.Save("Contacts.xml");
}
public void DeleteContact(int id)
{
XDocument xmlDocument = XDocument.Load("Contacts.xml");
//得到联系人并删除他
xmlDocument.Root.Elements().Where(x => x.Attribute("Id").Value == id.ToString())
.FirstOrDefault().Remove();
xmlDocument.Save("Contacts.xml");
}
public int GetNextId()
{
int currentId;
XDocument xmlDocument = XDocument.Load("Contacts.xml");
//获取id的集合
IEnumerable<int> contactIds = xmlDocument.Element("Contacts").Elements("Contact")
.Select(x => int.Parse(x.Attribute("Id").Value));
//如果集合为空,则将变量设置为0,否则将该变量设置为最高ID值
if (contactIds.Count() == 0)
currentId = 0;
else
currentId = contactIds.Max();
return currentId + 1;
}
public void SetXmlFile()
{
//如果xml文件丢失,则使用根元素创建它
if (!(File.Exists("Contacts.xml")))
{
XDocument xmlDocument = new XDocument(
new XDeclaration("1.0","utf-8","yes"),new XElement("Contacts"));
xmlDocument.Save("Contacts.xml");
}
}
public bool IdExists(int id)
{
XDocument xmlDocument = XDocument.Load("Contacts.xml");
return xmlDocument.Element("Contacts").Elements("Contact")
.Select(x => int.Parse(x.Attribute("Id").Value))
.Where(y => y == id).Count() > 0;
}
}
}
主窗体frmMain.cs
public partial class frmMain : Form
{
LinqXmlContactsBLManager blManager = new LinqXmlContactsBLManager();
public frmMain()
{
InitializeComponent();
//如果xml文件丢失,创建它
blManager.SetXmlFile();
dataGridView1.DataSource = blManager.GetAllContacts();
}
private void btnViewContact_Click(object sender,EventArgs e)
{
if (txtId.Text == "")
{
MessageBox.Show("请输入ID","消息");
txtId.Focus();
return;
}
int x;
if (!int.TryParse(txtId.Text,out x))
{
MessageBox.Show("请输入有效的ID","消息");
txtId.Focus();
txtId.SelectAll();
return;
}
if (!blManager.IdExists(int.Parse(txtId.Text)))
{
MessageBox.Show("id " + txtId.Text + " 不存在","消息");
txtId.Focus();
txtId.SelectAll();
return;
}
//通过id获得一个联系人
Contact contact = blManager.GetContactById(int.Parse(txtId.Text));
//show the contact properties on the controls
lblId.Text = contact.Id.ToString();
txtFirstName.Text = contact.FirstName;
txtLastName.Text = contact.LastName;
txtCompany.Text = contact.Company;
txtCity.Text = contact.City;
txtTelephone.Text = contact.Telephone;
txtFax.Text = contact.Fax;
txtEmail.Text = contact.Email;
txtId.Clear();
}
private void btnNewContact_Click(object sender,EventArgs e)
{
frmAdd frmAdd1 = new frmAdd();
frmAdd1.ShowDialog();
dataGridView1.DataSource = blManager.GetAllContacts();
}
private void btnUpdateContact_Click(object sender,EventArgs e)
{
if (lblId.Text == "")
{
MessageBox.Show("未选择联系人","消息");
txtId.Focus();
txtId.SelectAll();
return;
}
if (txtFirstName.Text == "")
{
MessageBox.Show("请输入姓氏","消息");
txtFirstName.Focus();
return;
}
if (txtLastName.Text == "")
{
MessageBox.Show("请输入名","消息");
txtLastName.Focus();
return;
}
if (txtCompany.Text == "")
{
MessageBox.Show("请输入公司","消息");
txtCompany.Focus();
return;
}
if (txtCity.Text == "")
{
MessageBox.Show("请输入城市","消息");
txtCity.Focus();
return;
}
if (txtTelephone.Text == "")
{
MessageBox.Show("请输入电话","消息");
txtTelephone.Focus();
return;
}
if (txtFax.Text == "")
{
MessageBox.Show("请输入传真","消息");
txtFax.Focus();
return;
}
if (txtEmail.Text == "")
{
MessageBox.Show("请输入邮件","消息");
txtEmail.Focus();
return;
}
//创建一个联系人,并从控件值设置他的属性
Contact contact = new Contact()
{
Id = int.Parse(lblId.Text),FirstName = txtFirstName.Text,LastName = txtLastName.Text,Company = txtCompany.Text,City = txtCity.Text,Telephone = txtTelephone.Text,Fax = txtFax.Text,Email = txtEmail.Text
};
//更新联系人
blManager.UpdateContact(contact);
dataGridView1.DataSource = blManager.GetAllContacts();
}
private void btnDeleteContact_Click(object sender,"消息");
txtId.Focus();
txtId.SelectAll();
return;
}
Contact contact = blManager.GetContactById(int.Parse(lblId.Text));
string messagetoPrint = "The following contact will get deleted:\n\n" +
"Id : " + contact.Id.ToString() + "\n" +
"First name : " + contact.FirstName + "\n" +
"Last name : " + contact.LastName + "\n" +
"Company : " + contact.Company + "\n" +
"City : " + contact.City + "\n" +
"Telephone : " + contact.Telephone + "\n" +
"Fax : " + contact.Fax + "\n" +
"Email : " + contact.Email + "\n\n" +
"Are you sure?";
DialogResult dialogResult = MessageBox.Show(messagetoPrint,"Message",MessageBoxButtons.YesNo);
//如果用户点击“否”,则取消删除操作
if (dialogResult == DialogResult.No)
{
MessageBox.Show("操作被取消","消息");
return;
}
//如果用户点击“是”,删除联系人
blManager.DeleteContact(contact.Id);
dataGridView1.DataSource = blManager.GetAllContacts();
//清除控件值
lblId.Text = "";
txtFirstName.Clear();
txtLastName.Clear();
txtCompany.Clear();
txtCity.Clear();
txtTelephone.Clear();
txtFax.Clear();
txtEmail.Clear();
}
private void btnClose_Click(object sender,EventArgs e)
{
Application.Exit();
}
}
增加窗体frmAdd.cs
public partial class frmAdd : Form
{
LinqXmlContactsBLManager blManager = new LinqXmlContactsBLManager();
public frmAdd()
{
InitializeComponent();
}
private void btnAdd_Click(object sender,EventArgs e)
{
if (txtFirstName.Text == "")
{
MessageBox.Show("请输入姓氏","消息");
txtFirstName.Focus();
return;
}
if (txtLastName.Text == "")
{
MessageBox.Show("请输入名字","消息");
txtLastName.Focus();
return;
}
if (txtCompany.Text == "")
{
MessageBox.Show("请输入公司","消息");
txtCompany.Focus();
return;
}
if (txtCity.Text == "")
{
MessageBox.Show("请输入城市","消息");
txtCity.Focus();
return;
}
if (txtTelephone.Text == "")
{
MessageBox.Show("请输入电话","消息");
txtTelephone.Focus();
return;
}
if (txtFax.Text == "")
{
MessageBox.Show("请输入传真","消息");
txtFax.Focus();
return;
}
if (txtEmail.Text == "")
{
MessageBox.Show("请输入电子邮件","消息");
txtEmail.Focus();
return;
}
//创建联系人,并从控件中为属性设置值
int id = blManager.GetNextId();
Contact contact = new Contact()
{
Id = id,FirstName = txtFirstName.Text,LastName = txtLastName.Text,Company = txtCompany.Text,City = txtCity.Text,Telephone = txtTelephone.Text,Fax = txtFax.Text,Email = txtEmail.Text
};
//添加联系人
blManager.AddContact(contact);
//清除控件值
txtFirstName.Clear();
txtLastName.Clear();
txtCompany.Clear();
txtCity.Clear();
txtTelephone.Clear();
txtFax.Clear();
txtEmail.Clear();
txtFirstName.Focus();
}
private void btnClose_Click(object sender,EventArgs e)
{
Close();
}
}
运行结果如图:
原文地址:https://www.jb51.cc/xml/294009.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。