c#直接調用ssis包實現Sql Server的資料匯入功能

來源:互聯網
上載者:User

調用ssis包實現Sql Server的資料匯入功能網上已經有很多人討論過,自己參考後也動手實現了一下,上一次筆者的項目中還用了一下這個功能。思前想後,決定還是貼一下增強記憶,高手請54.
1、直接調用ssis包,需要引用Microsoft.SqlServer.DTSRuntimeWrap.dll,用戶端需要安裝MS SQL Server2005的用戶端組件。
2、調用代碼

代碼

        /// <summary>
        /// /通過SSIS包 將資料匯入資料庫
        /// </summary>
        /// <param name="dtsxFileName">dtsx檔案名稱</param>
        /// <param name="csvFileName">csv檔案名稱</param>
        /// <returns></returns>
        protected bool FillData2DB(string dtsxFileName, string csvFileName)
        {
            string dtsxFile = System.AppDomain.CurrentDomain.BaseDirectory + "DTSX\\" + dtsxFileName;

            Microsoft.SqlServer.Dts.Runtime.Wrapper.Application app = new Microsoft.SqlServer.Dts.Runtime.Wrapper.Application();

            //Call the dtsx file 
            IDTSPackage90 package = app.LoadPackage(dtsxFile, true, null); //另外還有一種方法叫LoadFromSQLServer 

            package.Connections["File"].ConnectionString = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, csvFileName);
            package.Connections["本地串連"].ConnectionString = ConfigurationSettings.AppSettings["ConnStr"];

            DTSExecResult result = package.Execute();
            //擷取包的執行資訊
            //string message = string.Empty;
            //if (result.Equals(DTSExecResult.DTSER_FAILURE))
            //{
            //    for (int i = 0; i < package.Errors.Count; i++)
            //    {
            //        message += package.Errors[i].Description;
            //    }
            //}
            //if (!string.IsNullOrEmpty(message))
            //{
            //    throw new Exception(message); //拋出異常
            //}
            if (result.Equals(DTSExecResult.DTSER_SUCCESS))
                return true;
            else
                return false;

        }

 需要的配置節如下:

代碼

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="ConnStr" value="Data Source=10.10.**.***;User ID=adminTest;Password=***;Initial Catalog=TestDb;Provider=SQLNCLI.1;Persist Security Info=True;"/>
  </appSettings>
</configuration>

 注意:方法中需要用到dtsx模板和csv檔案,csv檔案的簡單產生可以參考這一篇,而dtsx模板製作是重中之中,自己菜鳥一枚,沒有發言權,您可以參考網上資源。
最後,弱弱地問一下,這個算不算傳說中的抄襲剽竊啊?非原創,非原創......默念一百遍,

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.