2013-04-17 4 views
0

이와 같이 SeedData.xml이라는 xml 파일을 만들었습니다.mvc4를 사용하여 xml 데이터를 데이터베이스에 저장하는 방법

<Root> 
    <User> 
     <UserID>1</UserID>    
     <UserName>Admin</UserName>  
     <FirstName>Admin</FirstName> 
     <LastName>Admin</LastName> 
     <ShortName>Admin</ShortName>   
    </User> 
</Root> 

나는 이와 같이 web.config에 경로를 포함 시켰습니다.

<appSettings>  
    <add key="myFilePath" value="D:\XmlSample\Common\SeedData.xml"/> 
    </appSettings> 

데이터를 XML 파일에 데이터베이스에 추가해야합니다.

나는 XML

string filePath = ConfigurationManager.AppSettings["myFilePath"]; 

의 경로를 가지고하지만 내가 어떻게 XML에서 값을 추출하고 database.I에 저장이 구글에서 많이 검색 할 수 있습니다, 그러나 나는 해결책을 찾을 수 없습니다. Pls 도움말

+0

는이 http://stackoverflow.com/questions/2441673/reading-xml-with-xmlreader-in-c-sharp – ePezhman

답변

1

XML은 범용 태그 기반 언어이며 응용 프로그램간에 데이터를 전송하고 저장하기가 쉽습니다. .Net 기술은 널리 지원되는 XML 파일 형식입니다. .Net Framework는 XML 형식의 파일에서 읽기, 쓰기 및 기타 작업을위한 클래스를 제공합니다. 또한 ADO.NET의 데이터 집합은 XML 형식을 내부 저장소 형식으로 사용합니다.

여기서 SQL Insert Command를 사용하여 XML 파일의 값을 데이터베이스 테이블에 삽입합니다. 여기 XmlReader를 사용하여 XML 파일의 내용을 읽는 데이터 집합입니다. XmlReader를 사용하여 XML 파일을 찾고 XmlReader를 Dataset의 인수로 전달합니다. 또한 연결 고리를 사용하여 데이터베이스에 연결하십시오. XML 파일에서 데이터 세트로 데이터를 가져온 후에는 데이터 세트 값을 반복하고 insert 명령을 사용하여 데이터 베 이스의 테이블에 값을 추가 할 수 있습니다.

내 생각이

using System; 
    using System.Data; 
    using System.Windows.Forms; 
    using System.Xml; 
    using System.Data.SqlClient; 

    namespace WindowsApplication1 
    { 
     public partial class Form1 : Form 
     { 
      public Form1() 
      { 
       InitializeComponent(); 
      } 

      private void button1_Click(object sender, EventArgs e) 
      { 
       string connetionString = null; 
       SqlConnection connection; 
       SqlCommand command ; 
       SqlDataAdapter adpter = new SqlDataAdapter(); 
       DataSet ds = new DataSet(); 
       XmlReader xmlFile ; 
       string sql = null; 

       int ID = 0; 
       string Name = null; 
       double Price = 0; 

       connetionString = "Data Source=servername;Initial Catalog=databsename;User ID=username;Password=password"; 

       connection = new SqlConnection(connetionString); 

       xmlFile = XmlReader.Create("Xmlfile.xml", new XmlReaderSettings()); 
       ds.ReadXml(xmlFile); 
       int i = 0; 
       connection.Open(); 
       for (i = 0; i <= ds.Tables[0].Rows.Count - 1; i++) 
       { 
        ID = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[0]); 
        Name = ds.Tables[0].Rows[i].ItemArray[1].ToString(); 
        Price = Convert.ToDouble(ds.Tables[0].Rows[i].ItemArray[2]); 
        sql = "insert into tablenamevalues(" + ID + ",'" + Name + "'," + Price + ")"; 
        command = new SqlCommand(sql, connection); 
        adpter.InsertCommand = command; 
        adpter.InsertCommand.ExecuteNonQuery(); 
       } 
       connection.Close(); 
       MessageBox.Show("Done .. "); 
      } 
     } 
    } 
+0

감사합니다 you..It을 필요로하십시오 완벽하게 일했다. – Mizbella

관련 문제