2015-05-29 46 views
0
  • 我想叫TestPack 3個coulmns表 - 姓名,測試用例編號,測試計劃
  • 測試計劃是存儲在C盤我的電腦的xml文件
  • 哪有我開始創建這張桌子?注意:我希望添加整個文件,而不是在第3列中寫入實際的xml代碼。

而且,我是相當新的ASP.NET,C#和Microsoft SQL服務器,讓饒我愚蠢的問題在Microsoft SQL Server添加XML爲表

+0

H ow large是你的文件(X KB,X MB,X GB?)你確定不需要搜索XML內容嗎?爲什麼你不想把它作爲XML數據類型存儲?如果你真的不想存儲內容,是否存儲文件路徑的選項? –

+0

嗯,是的,我確定我永遠不需要在xml中搜索,目的是基於前兩列訪問特定的xml文件,然後在UI上顯示該xml文件。 – tjshah050291

+0

我寧願存儲整個xml而不是路徑....並且xml文件大小約爲70-100 kb – tjshah050291

回答

0

首先,你需要創建表後該

Create Table [MyTable] (ID int, [myXmlColumn] xml); 

然後你需要使用sqlparameter插入數據

public static void InsertXMlDataIntoTableBySQLParameter() 
    { 
     using (SqlConnection sqlconnection = new SqlConnection(@"Data Source=.\SQLExpress; 
    Initial Catalog=MorganDB; Integrated Security=SSPI;")) 
     { 
      sqlconnection.Open(); 

      // create table if not exists 
      string createTableQuery = @"Create Table [MyTable] (ID int, [myXmlColumn] xml)"; 
      SqlCommand command = new SqlCommand(createTableQuery, sqlconnection); 
      command.ExecuteNonQuery(); 
      //whateever xml data 
      string xmlData = "<XmlRoot><childNode></childNode></XmlRoot>"; 

      string insertXmlQuery = @"Insert Into [MyTable] (ID,[myXmlColumn]) Values(1,@myXmlColumn)"; 

      // Insert XMl Value into Sql Table by SqlParameter 
      SqlCommand insertCommand = new SqlCommand(insertXmlQuery, sqlconnection); 
      SqlParameter sqlParam = insertCommand.Parameters.AddWithValue("@myXmlColumn", xmlData); 
      sqlParam.DbType = DbType.Xml; 
      insertCommand.ExecuteNonQuery(); 
     } 
    } 
+0

謝謝@Jagadeesh,但我沒有完全遵循它......但是,我認爲上面的代碼的確如此像下面的一樣。注意:下面的代碼運行良好。 「CREATE TABLE XMLwithOpenXML ( ID INT IDENTITY PRIMARY KEY, XMLDATA XML, LoadedDateTime DATETIME ) INSERT INTO XMLwithOpenXML(XMLDATA,LoadedDateTime) SELECT CONVERT(XML,BulkColumn)AS BulkColumn,GETDATE( ) FROM OPENROWSET(BULK'D:\ OpenXMLTesting.xml','SINGLE_BLOB)AS x; SELECT * FROM XMLwithOpenXML' – tjshah050291