2012-11-02 8 views
5

पर पूर्ण SQL तालिका निर्यात करने के लिए कैसे मेरा प्राथमिक कोडिंग आदर्श .NET अनुप्रयोगों पर है .. इसलिए मेरे पास एप्लिकेशन डिज़ाइन के साथ सीमित कौशल है।एक्सएमएल

मैं किसी XML फ़ाइल (एक दृश्य का उपयोग करके) से एक संपूर्ण तालिका को एक एक्सएमएल फ़ाइल में निर्यात करने की कोशिश कर रहा हूं (फिर उम्मीद है कि इसे एक स्प्रेडशीट पर निर्यात करें - मैंने देखा है और सीधे रास्ता खोजने में असफल रहा है)।

मैं सफलतापूर्वक, xml फ़ाइल के लिए केवल 1 कॉलम निर्यात इस कोड का उपयोग:

DataConn.UserName = "***"; 
DataConn.Password = "***"; 
DataConn.SqlServer = "***"; 
DataConn.Database = "***"; 

const string strSql = "SELECT TOP 1 * FROM vwGetStaffDetails FOR XML AUTO"; 

using (SqlCommand sqlComm = new SqlCommand(strSql, DataConn.Connect()) { CommandType = CommandType.Text }) 
{ 
    string result = sqlComm.ExecuteScalar().ToString(); 

    File.WriteAllText(@"C:\Temp\text.xml", result); 
} 

जब भी मैं का उपयोग ExecuteReader या ExecuteXmlReader, मैं किसी भी वास्तविक परिणाम नहीं मिलता है।

मुझे सभी फ़ील्ड कैसे प्राप्त होंगे?

संपादित करें: मैं Top 1 उपयोग करने के लिए अच्छी तरह से काम कर रहा Execute Scalar पाने के लिए था।

नीचे समाधान का उपयोग करना, मेरी फाइल दिखाता है:

<?xml version="1.0" standalone="yes"?> 
<NewDataSet> 
    <Table> 
    <XML_F52E2B61-18A1-11d1-B105-00805F49916B>&lt;vwGetStaffDetails ImageLoc="****.jpg" LName="GAINES" FName="****" StaffTitle="****" JobPosition="****" Email="***@***.com" Code="***" Number="******" PhoneTypeID="1"/&gt;</XML_F52E2B61-18A1-11d1-B105-00805F49916B> 
    </Table> 
</NewDataSet> 

यह &lt; आदि उचित XML की बजाय लिख रही। क्या इसे ठीक करने का कोई तरीका है?

उत्तर

7

आप और System.Data.DataSet का उपयोग DataTable लोड करने के लिए कर सकते हैं, जो XML को लिखेंगे।

const string strSql = "SELECT * FROM vwGetStaffDetails"; 

using (SqlCommand sqlComm = new SqlCommand(strSql, DataConn.Connect()) { CommandType = CommandType.Text }) 
{ 
    SqlDataAdapter da = new SqlDataAdapter(sqlComm); 
    DataSet ds = new DataSet(); 
    da.Fill(ds); 
    ds.Tables[0].WriteXml(@"C:\Temp\text.xml"); 
} 

संपादित इस प्रक्रिया में एसक्यूएल से XML कोड निकाल देंगे और नेट सब कुछ बदलने देते का उपयोग करना। मैंने इसे प्रतिबिंबित करने के लिए अपना SQL कमांड बदल दिया है।

+0

अद्भुत काम करता है! लेकिन .. मेरे संपादन की जांच करें। – TheGeekZn

+0

अगर आप इस विधि का उपयोग करना चाहते हैं तो बस मेरा जवाब संपादित करें, आप एसक्यूएल से एक्सएमएल प्रोसेसिंग को हटा दें और .NET को सबकुछ परिवर्तित करने दें। –

+0

आपका अद्भुत है: डी धन्यवाद आदमी .. मुझे आशा है कि यह किसी और की मदद करेगा जो उत्तर की तलाश में है। – TheGeekZn

0

आप यह देखना चाहते हैं कि आप क्वेरी कैसे लिख सकते हैं जो आउटपुट एक्सएमएल है।
इस बारे में इंटरनेट पर कई उदाहरण और ट्यूटोरियल हैं। यह http://msdn.microsoft.com/en-us/library/bb510462.aspx उनमें से एक है।

यदि मुझे गलत नहीं किया गया है तो आउटपुट आउटपुट को इसके अंदर पूर्ण XML सामान के साथ एक स्ट्रिंग होना चाहिए।