protected void btnSubmit_Click(object sender, System.EventArgs e)
{
DataSet ds = new DataSet("myDs");
if(!File.Exists(Server.MapPath("dbQuestion.xml")))
{
//以下创建数据库xml
DataTable dt = new DataTable("Question");
dt.Columns.Add("QuestionID",typeof(int));
dt.Columns.Add("Name",typeof(string));
dt.Columns.Add("Age",typeof(int));
dt.Columns.Add("Email",typeof(string));
dt.Columns.Add("Item",typeof(string));
ds.Tables.Add(dt);
//ds.WriteXml(Server.MapPath("dbQuestion.xml"));
}
else
ds.ReadXml(Server.MapPath("dbQuestion.xml"));
//以下生成一条记录
DataRow dr = ds.Tables[0].NewRow();
dr["QuestionID"] = ds.Tables[0].Rows.Count+1;
dr["Name"] =tbName.Text.Trim();
dr["Age"] = tbAge.Text;
dr["Email"] = tbEmail.Text;
//以下保存用户的调查项目
DataSet dsItem = new DataSet("Item");
DataTable dtItem = new DataTable("dtItem");
dsItem.Tables.Add(dtItem);
dtItem.Columns.Add("ID",typeof(int));
dtItem.Columns.Add("Title",typeof(string));
dtItem.Columns.Add("Answer",typeof(string));
for(int i=1;i<=6;i++)
{
DataRow drItem = dtItem.NewRow();
drItem["ID"] =i;
drItem["Title"] = ((Label)this.FindControl("lbQuestion"+i.ToString())).Text;
RadioButtonList rbl = (RadioButtonList)this.FindControl("rbQuestion"+i.ToString());
for(int j=0;j<4;j++)
{
if(rbl.Items[j].Selected)
drItem["Answer"] = rbl.Items[j].Text;
}
dtItem.Rows.Add(drItem);
}
dr["Item"] = dsItem.GetXml();
ds.Tables[0].Rows.Add(dr);
//最后保存并转向
ds.WriteXml(Server.MapPath("dbQuestion.xml"));
Session["myDs"] = ds;
Response.Redirect("show.aspx");
}
显示
protected void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
DataSet ds = (DataSet)Session["myDs"];
dgShow.DataSource = ds.Tables[0].DefaultView;
dgShow.DataBind();
}
---利用xmldocment
namespace DsAndXML.OpXMLFile
{
/// <summary>
/// Main 的摘要说明。
/// </summary>
public partial class Main : System.Web.UI.Page
{
protected void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!IsPostBack)
Bind();
}
private void Bind()
{
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath(".\\db\\dbGuest.xml"));
dgShow.DataSource = ds.Tables[0].DefaultView;
dgShow.DataBind();
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath(".\\db\\dbGuest.xml"));
XmlNodeList elemList = doc.GetElementsByTagName("Name");
ddlName.Items.Clear();
for(int i=0;i<elemList.Count;i++)
ddlName.Items.Add(elemList[i].InnerXml);
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
}
#endregion
protected void btnQuery_Click(object sender, System.EventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath(".\\db\\dbGuest.xml"));
lbEmail.Text = doc.SelectSingleNode("//User[Name='"+ddlName.SelectedItem.Text+"']").ChildNodes.Item(2).InnerText;
}
protected void btnChange_Click(object sender, System.EventArgs e)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath(".\\db\\dbGuest.xml"));
XmlNodeList nodeList=xmlDoc.SelectSingleNode("dbGuest").ChildNodes;//获取dbGuest节点的所有子节点
foreach(XmlNode xn in nodeList)//遍历所有子节点
{
XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型
XmlNodeList node = xe.GetElementsByTagName("Name");
if(node.Count>0)
{
if(node[0].InnerText==ddlName.SelectedItem.Text)
{
XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach(XmlNode xn1 in nls)//遍历
{
XmlElement xe2=(XmlElement)xn1;//转换类型
if(xe2.Name=="Email")//如果找到
{
xe2.InnerText=tbNewMail.Text;//则修改
break;//找到退出来就可以了
}
}
break;
}
}
}
xmlDoc.Save(Server.MapPath(".\\db\\dbGuest.xml"));
Bind();
}
protected void btnDelete_Click(object sender, System.EventArgs e)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath(".\\db\\dbGuest.xml"));
XmlNodeList xnl=xmlDoc.SelectSingleNode("dbGuest").ChildNodes;
foreach(XmlNode xn in xnl)
{
XmlElement xe=(XmlElement)xn;
XmlNodeList node = xe.GetElementsByTagName("Name");
if(node.Count>0)
{
if(node[0].InnerText==ddlName.SelectedItem.Text)
xe.RemoveAll();//删除该节点的全部内容
break;
}
}
xmlDoc.Save(Server.MapPath(".\\db\\dbGuest.xml"));
Bind();
}
protected void btnAdd_Click(object sender, System.EventArgs e)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath(".\\db\\dbGuest.xml"));
XmlNode root=xmlDoc.SelectSingleNode("dbGuest");//查找<dbGuest>
XmlElement xe1=xmlDoc.CreateElement("User");//创建一个<User>节点
XmlElement xesub1=xmlDoc.CreateElement("Name");
xesub1.InnerText="Guset";//设置文本节点
xe1.AppendChild(xesub1);//添加到<User>节点中
XmlElement xesub2=xmlDoc.CreateElement("City");
xesub2.InnerText="上海";
xe1.AppendChild(xesub2);
XmlElement xesub3=xmlDoc.CreateElement("Email");
xesub3.InnerText="[email protected]";
xe1.AppendChild(xesub3);
root.AppendChild(xe1);//添加到<dbGuest>节点中
xmlDoc.Save(Server.MapPath(".\\db\\dbGuest.xml"));
Bind();
}
}
}