XMLファイルのコンテンツをデータベースに保存するにはどうすればよいですか(XMLタイプを持つフィールド内)
ieでファイルの内容を読むべきですか:
FileUpload1.FileContent;
それをパラメーターとして送信して、データベースに保存しますか? それが正しいか?
XML ファイルをメモリにロードするには、XmlReader クラスと XmlTextReader クラスを使用する必要があります。それらは 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 コンテンツを、可能であれば (使用する DB システムに応じて) XML として DB に格納するか、varchar として格納します。ただし、XML として保存することをお勧めします。これは、適切な形式で、たとえば特定のスキーマに対して検証されていることを保証できるためです。
最初にサーバーのハードディスクに保存してから、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
}
基本的に、XML リテラル文字列から XML 型の列に入力できるため、anormal INSERT statement
を使用してそのフィールドに XML コンテンツを簡単に入力できます。このためには、XML ファイルを読み取る必要があります。
ここで説明されているように、System.Xml.Linq
名前空間を使用してXDocument.Load(@"YourXmlFile.xml");
、または任意の標準的な方法で XML ファイルを読み取ることができます - http://support.microsoft.com/kb/307548