2013-04-04 42 views
5

我在C#/ ASP.NET中有一個Web應用程序。我想用相同的唯一鍵(Company ID)導出所有數據庫表的數據。所有的表都有這個鍵(每個公司都不一樣)。我想爲未來的備份做到這一點。 Linq還是經典的C#有可能嗎?如何實現這種備份和恢復?從SQL Server導出多個表格到XML進行還原

+0

- 你應該使用SQL Server **數據庫備份**機制 - 不再重新發明整個事情..... – 2013-04-04 05:14:13

+0

@marc_s:他想根據t備份選擇性記錄他的公司身份證爲SQL SERVER數據庫備份不是我的好主意我猜 – 2013-04-04 05:17:22

+0

你可以創建過程,它會根據你的唯一ID過濾器給你所有表的結果 - 公司ID,然後使用XML爲你是能夠得到xml。 – KuldipMCA 2013-04-04 05:43:17

回答

2

一個例子來解決的是

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

}

這將創造SelectiveDatabaseBackup.xml以後可以使用。如果你使用SQL Server的恢復備份

+0

謝謝你的幫助!你能告訴我什麼樣的數據類型是var表,因爲我有我的框架var的問題 – Equilibrium 2013-04-04 06:26:51

+0

表是字符串和表是字符串數組 – 2013-04-04 06:29:07

+0

當我嘗試分配字符串表,(在foreach聲明)我拿錯誤:類型或名稱空間無法找到名稱表 – Equilibrium 2013-04-04 06:33:49

-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

僅有代碼的答案確實可以處理一些說明。請你詳細說明一下嗎? – Werner 2014-07-14 15:41:51

相關問題