2013-04-04 13 views
5

Ho un'applicazione Web in C#/ASP.NET. Voglio esportare tutti i dati della tabella del database, con la stessa chiave univoca (Company ID). Tutti i tavoli hanno questa chiave (diversa per ogni azienda). Voglio farlo per il backup futuro. È possibile con Linq o C# classico? Come può ottenere questo backup e ripristino?Esportazione di più tabelle da SQL Server a XML per il ripristino

+0

Se stai usando SQL Server - dovresti utilizzare il meccanismo di backup del database ** di SQL Server ** - non reinventare ancora una volta il tutto ..... –

+0

@marc_s: vuole eseguire il backup di record selettivi basati su t l'id dell'azienda per il quale il backup del database SQL SERVER non è una buona idea, suppongo che –

+0

tu sia in grado di creare una procedura che ti dia risultato da tutte le tabelle di base sul filtro del tuo ID univoco - ID della società quindi dall'uso dell'XML. in grado di ottenere xml. – KuldipMCA

risposta

2

Uno degli esempi per la soluzione è

using System.Data.SqlClient; 
using System.Data; 
using System.IO; 

namespace ConsoleApplication4 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 
     var connStr = "Data Source=MOHSINWIN8PRO\\SQLEXPRESS;Initial Catalog=AB2EDEMO;Integrated Security=True"; 
     var xmlFileData = ""; 
     DataSet ds = new DataSet(); 
     var tables = new[] {"Hospital", "Patient"}; 
     foreach (var table in tables) 
     { 

      var query = "SELECT * FROM "+ table +" WHERE (Hospital_Code = 'Hosp1')"; 
      SqlConnection conn = new SqlConnection(connStr); 
      SqlCommand cmd = new SqlCommand(query, conn); 
      conn.Open(); 
      SqlDataAdapter da = new SqlDataAdapter(cmd); 
      da.Fill(ds); 
      conn.Close(); 
      conn.Dispose(); 
      xmlFileData+=ds.GetXml(); 
     } 
     File.WriteAllText("D://SelectiveDatabaseBackup.xml",xmlFileData); 
    } 
} 

}

questo creerà SelectiveDatabaseBackup.xml che può essere poi utilizzato per ripristinare il backup

+0

Grazie per il vostro aiuto! Puoi dirmi quale tipo di dati è var table perché ho problemi con var sul mio framework – Equilibrium

+0

table is string e tables is string array –

+0

Quando provo ad assegnare la tabella string, (all'interno di foreach declaration) prendo l'errore: Il tipo o spazio dei nomi impossibile trovare la tabella dei nomi – Equilibrium

-2
   SaveFileDialog SD = new SaveFileDialog(); 
       if (SD.ShowDialog() != System.Windows.Forms.DialogResult.Cancel) 
       { 
        System.IO.StreamWriter SW = new System.IO.StreamWriter(SD.FileName); 
        foreach (string str in checkedListBox1.CheckedItems) 
        { 
         string XMLSTR = //Heads.funtions.ConvertDatatableToXML(
             Heads.funtions.fire_qry_for_string(string.Format("Select * from {0} FOR XML AUTO,TYPE, ELEMENTS ,ROOT('{0}')", str)); // , str); 
         SW.Write(XMLSTR); 
         SW.WriteLine("###TABLEEND###"); 
        } 
        SW.Close(); 
        //_CommonClasses._Cls_Alerts.ShowAlert("Clean Up Completed...!!!", "CleanUP", MessageBoxIcon.Information); 
       } 
+2

Codice-solo risposte davvero potrebbe fare con un po ' spiegazione. Potresti elaborare, per favore? – Werner

Problemi correlati