SSIS 学习之旅 FTP文件传输-脚本任务

这一章主要讲解一下通过脚本任务怎么把CSV文件抛送到FTP服务器上

控件的使用这里就不做详细讲解了。大家如果有不懂得可以看下我之前的文章。

第一章:SSIS 学习之旅 第一个SSIS 示例(一)
第二章:SSIS 学习之旅 第一个SSIS 示例(二)
第三章:SSIS 学习之旅 数据同步
第四章:SSIS 学习之旅 FTP文件传输-FTP任务

设计:
   通过Demon库的Users表数据生成CSV文件。
   生成后的CSV文件抛送到FTP指定目录下。


创建语句:

-- 创建一个数据库Demo
CREATE DATABASE  Demon

-- 创建一张User表
CREATE TABLE [dbo].[Users](
	[ID] BIGINT IDENTITY(1,1) NOT NULL,
	[UserName] NVARCHAR(500) NULL,
	[PassWords] NVARCHAR(500) NULL
) ON [PRIMARY]

-- 给表添加数据
INSERT INTO [dbo].[Users]
VALUES ('LiLei','123456')
INSERT INTO [dbo].[Users]
VALUES ('Wangmingmign','654321')
INSERT INTO [dbo].[Users]
VALUES ('Jack','123654')

1.创建脚本任务
通过脚本任务来生成文件名称及完整路径信息

SSIS 学习之旅 FTP文件传输-脚本任务_第1张图片

SSIS 学习之旅 FTP文件传输-脚本任务_第2张图片


2.创建本地目录
通过文件系统任务在本地生成存放CSV文件路径

SSIS 学习之旅 FTP文件传输-脚本任务_第3张图片


3.创建数据流任务
通过数据流任务来生成CSV文件

SSIS 学习之旅 FTP文件传输-脚本任务_第4张图片


4.创建平面文件连接管理器

SSIS 学习之旅 FTP文件传输-脚本任务_第5张图片

记得给csv文件路径及名称

SSIS 学习之旅 FTP文件传输-脚本任务_第6张图片


5.创建脚本任务

SSIS 学习之旅 FTP文件传输-脚本任务_第7张图片


辅助方法:

 /// 
        /// 上传
        /// 
        /// 文件详细路径
        /// FTPUrl
        /// 用户名
        /// 密码
        public void Upload(string FilePathPendingAndName, string FTPUrl, string FTP_UserName, string FTP_PWD)
        {
            FileInfo fileInf = new FileInfo(FilePathPendingAndName);
            FtpWebRequest reqFTP;
            reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(FTPUrl + fileInf.Name));
            reqFTP.Credentials = new NetworkCredential(FTP_UserName, FTP_PWD);
            reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
            reqFTP.KeepAlive = false;
            reqFTP.UseBinary = true;
            reqFTP.ContentLength = fileInf.Length;
            int buffLength = 2048;
            byte[] buff = new byte[buffLength];
            int contentLen;
            FileStream fs = fileInf.OpenRead();
            try
            {
                Stream strm = reqFTP.GetRequestStream();
                contentLen = fs.Read(buff, 0, buffLength);
                while (contentLen != 0)
                {
                    strm.Write(buff, 0, contentLen);
                    contentLen = fs.Read(buff, 0, buffLength);
                }
                strm.Close();
                fs.Close();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }




        #region 连接FTP服务器
        ///   
        /// 连接FTP服务器
        ///   
        /// FTP连接地址  
        /// 指定FTP连接成功后的当前目录, 如果不指定即默认为根目录  
        public string FTPHelper(string FtpServerIP, string FtpRemotePath)
        {
            string ftpURI = "ftp://" + FtpServerIP + "/" + FtpRemotePath + "/";
            return ftpURI;
        }

        #endregion

6.运行项目
到FTP可以查询 抛送的文件信息
注意:FTP必须要有相应的路径  否则会找不到路径的哟。




你可能感兴趣的:(SSIS学习之旅)