2012-11-02 16 views
5

Birincil kodlama idealim .net uygulamalarındadır. Bu yüzden uygulama tasarımı konusunda sınırlı beceriye sahibim.Tam SQL Tablosu XML'ye Nasıl Aktarılır

Tüm tabloyu bir veritabanından (görünüm kullanarak) bir XML dosyasına vermeyi deniyorum (Daha sonra bunu bir elektronik sayfaya aktaracağım - doğrudan bir yol bulup bakmadım).

başarıyla bu kodu kullanarak, xml dosyasına sadece 1 sütun ihraç var:

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); 
} 

Ben ExecuteReader veya ExecuteXmlReader, ben herhangi bir fiili sonuç alamadım her kullandığınızda.

Tüm alanları nasıl alabilirim?

Düzeltme:Top 1 numaralı telefonu kullanmam için Execute Scalar iyi çalışıyordum. Aşağıdaki çözümü kullanarak

, benim dosya gösterir: Bu < vb Bunun yerine uygun XML yazıyor

<?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> 

. Düzeltmenin herhangi bir yolu var mı?

cevap

7

XML'ye yazacak olan DataTable'u yüklemek için SqlDataAdapter ve System.Data.DataSet'u kullanabilirsiniz. Bu yöntemi Eğer SQL XML kodunu kaldırın ve .NET şeyi dönüştürmek izin vereceğim kullanma

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"); 
} 

Düzenleme. Bunu yansıtmak için SQL komutunu değiştirdim.

+0

Şaşırtıcı işler! ama .. Düzenlememi kontrol et. – TheGeekZn

+0

Sadece cevabımı düzenledim, eğer bu yöntemi kullanmak istiyorsanız, XML işlemlerini SQL'den kaldırırsınız ve .NET'in her şeyi dönüştürmesine izin verirsiniz. –

+0

Your'e amazing: D Teşekkürler adam .. Umarım bu cevap arayan başkalarına yardımcı olur. – TheGeekZn

İlgili konular