XML文档的一些简单操作

    虽说实习有点那么的无聊,但是却可以让我们有不少的收获;不仅仅只是将我们以前的只是进行整理,更重要的是我们还可以学到很多没有学到多技术;

比如对XML文档的操作,以前我只会直接用C#操作语句对XML文档进行操作;但是,如果加上对数据库的操作,那么问题就会出现了。通过这几天的实习,我掌握了这一技术,虽然运用的不怎么好,但这只是时间问题,我会努力做好。现在就将这两天所学的进行总结下:

首先执行:

protected void Button2_Click(object sender, EventArgs e)
    {
        SavaFileXml();   ///通过调用这个方法,然后再调用其他的方法,进而实现所要求实现的功能。
    }

技术节点一:将图像上传到服务器上面:

 private string UpImg() {
   
        ///将图像上传到服务器中去。
        if (this.FileUP.HasFile == false)
        {///判断是否为空

            Label1.Text = "请选择要上传的图像";
            //Response.Write("<script>alert('请选择要上传的文件!')</script>");
            return null;
        }
        ///获取图像
        string FileName = this.FileUP.FileName;
        ///获取图像的类型.
        //string FileType = FileName.Substring(FileName.LastIndexOf('.')+1);
        string fType = this.FileUP.PostedFile.ContentType;
        if (fType == "image/bmp" || fType == "image/gif" || fType == "image/pjpeg" || fType == "image/x-png")
        {
            if(File.Exists(Server.MapPath("~/newsimages/" + FileName))==true){///判断该图像是否已经存在了.

                Label1.Text = "该图像已经存在了!";
                return null;
     }
            this.FileUP.PostedFile.SaveAs(Server.MapPath("~/newsimages/" + FileName));
            Response.Write("<script>alert('正确了!')</script>");

            //return FileName;///返回图像名称

   }
        else
        {
            Response.Write("<script>alert('请选择正确的文件类型!')</script>");
            return null;

        }
        ///上传文件已经实现、现在需要将XML文档中的数据进行修改。
        return FileName;
   
    }

技术节点二:动态的对XML文档进行处理:

/// <summary>
    ///现在将数据存放到XML文档中去。
    /// </summary>

    private void SavaFileXml() {

        string test =this.UpImg();
        if(!string.IsNullOrEmpty(test)){

            string imagepath = "~/newsimages/" + test;
            ///同时将这些数据写入到数据库中
            ///
            InputData(imagepath);///保存到数据库中去.

            UpdaXml(Server.MapPath("~/xml/bcastr.xml"));
       
        }  }

技术节点三:将数据同时添加到数据库中:

 /// <summary>
    /// 保存到数据库中.
    /// </summary>
    /// <param name="ImgPath"></param>
    private void InputData(string ImgPath) {

        StringBuilder sql = new StringBuilder();
        sql.Append("insert into Tb_Img(Title,Auther,Stime,ImgPath,Contente)");
        sql.Append("values(@Title,@Author,@Pubdate,@ImagePath,@Content)");
        ///构造参数

        string sqlcon = "initial catalog=FileUpData;server=(local);integrated security=true;";
        SqlParameter[] para = new SqlParameter[] {new SqlParameter("@Title",tx_Title.Text),
        new SqlParameter("@Author",tx_author.Text),
            new SqlParameter("@Pubdate",DateTime.Now.ToString()),
            new SqlParameter("@ImagePath",ImgPath),
            new SqlParameter("@Content",tx_content.Text)
        };
        SqlConnection sqlconn = new SqlConnection();
        sqlconn.ConnectionString = sqlcon;
        sqlconn.Open();
        SqlCommand sqlcmd = new SqlCommand(sql.ToString(),sqlconn);
        sqlcmd.Parameters.AddRange(para);
        sqlcmd.ExecuteNonQuery();
        sqlconn.Close();///关闭数据库.

        ///上面的代码稍微有点问题.

        //string sql = "insert into Tb_Img(Title,Auther,Stime,ImgPath,Contente) values('"+tx_Title.Text+"','"+tx_author.Text+"','"+DateTime.Now.ToString()+"','"+ImgPath+"','"+tx_content.Text+"')";
        //SqlConnection sqlconn = new SqlConnection(sqlcon);
        //sqlconn.Open();
        //SqlCommand sqlcmd = new SqlCommand(sql, sqlconn);
        //sqlcmd.CommandType = CommandType.Text;
        //sqlcmd.ExecuteNonQuery();
        //sqlconn.Close();
    }

技术节点四:将读取出来的数据存放到XML文档中去(同时读取出来的是四条数据,一起存放到XML文档中。),

 /// <summary>
    /// 读取数据库中的最前面的四条数据;
    /// </summary>
    private DataTable GetDataImg() {
        string sqlcon = "initial catalog=FileUpData;server=(local);integrated security=true;";///连接数据库
        string sql = "SELECT top 4 ID,ImgPath  FROM Tb_Img  order by ID desc ";
        SqlConnection sqlconn = new SqlConnection(sqlcon);
        //sqlconn.Open();
        SqlCommand sqlcmd = new SqlCommand(sql, sqlconn);
        SqlDataAdapter da = new SqlDataAdapter(sqlcmd);
        DataSet ds = new DataSet();
        da.Fill(ds);
        return ds.Tables[0];///返回一张数据表    
    }
    /// <summary>
    /// 更改发XML文档中的四条数据
    /// </summary>
    private void UpdaXml(string XmlPath) {///指定XML文档的路径
        DataTable dt = GetDataImg();///返回的是一个数据表.
        XmlDocument doc = new XmlDocument();
        doc.Load(XmlPath);///加载
                   ///
        ///获取根节点
        ///
        XmlElement root = doc.DocumentElement;
        ///清除根节点的所有节点,新添内容到文档中去.
        root.RemoveAll();///移除所有节点.
        ///新添内容
        for (int i = 0; i < dt.Rows.Count;i++ )
        {
            ///创建节点
            XmlElement newitem = doc.CreateElement("item");
            newitem.SetAttribute("item_url",dt.Rows[i][1].ToString());
            newitem.SetAttribute("link","show.aspx?ID="+dt.Rows[i][0].ToString());
            ///创建的节点属性有:item_url,show.aspx?ID;共两个.
            root.AppendChild(newitem);

 }
        doc.Save(XmlPath);

    Response.Write("<script>alert('成功了!加油,好野狼!!')</script>");
    }

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值