使用Fileupload保存XML文件

时间:2012-06-15 15:01:02

标签: c# asp.net

如何将xml文件的内容保存到数据库(在具有XML类型的字段中)

我应该阅读文件的内容,即:

FileUpload1.FileContent;

然后将其作为参数发送到数据库中保存?这是对的吗?

3 个答案:

答案 0 :(得分:1)

您应该使用XmlReader和XmlTextReader类将XML文件加载到内存中。它们在System.XML命名空间中定义。您还可以使用System.Xml.Linq命名空间中定义的XDocument类。有关详细信息,请查看此处:

http://www.c-sharpcorner.com/uploadfile/mahesh/readingxmlfile11142005002137am/readingxmlfile.aspx

http://support.microsoft.com/kb/307548

var reader = new XmlTextReader("C:\\temp\\xmltest.xml");

然后,如果可能,您可以将XML内容作为XML存储在数据库中(取决于您使用的数据库系统)或varchar。最好将它们存储为XML,因为您可以确保它的格式良好并且针对某个模式进行验证!

答案 1 :(得分:1)

您必须先将其保存到服务器硬盘,然后将其InnerXML转换为字符串变量,然后将其保存到数据库中。

假设您将文件保存到磁盘中的某个文件夹,可以使用以下方法(使用LINQtoXML)来读取内容

XElement elm = XElement.Load(Server.MapPath(@"../YourUploadFolder/yourXMl.xml"));
if(elm!=null)
{
    var reader = elm.CreateReader();
    reader.MoveToContent();
    string xmlContent = reader.ReadInnerXml(); xmlContent
   // Now save to the database    
}

答案 2 :(得分:0)

您基本上可以从XML文字字符串中填充XML类型的列,因此您可以轻松地使用normal INSERT statement并将XML内容填充到该字段中。为此,您必须阅读XML文件。

您可以使用System.Xml.Linq命名空间并使用XDocument.Load(@"YourXmlFile.xml");或任何标准方法来阅读此处所述的XML文件 - http://support.microsoft.com/kb/307548