https://blog.csdn.net/u013054786/article/details/51408142
这一章主要讲解一下通过脚本任务怎么把CSV文件抛送到FTP服务器上
控件的使用这里就不做详细讲解了。大家如果有不懂得可以看下我之前的文章。
第一章:SSIS 学习之旅 第一个SSIS 示例(一)
第二章:SSIS 学习之旅 第一个SSIS 示例(二)
第三章:SSIS 学习之旅 数据同步
第四章:SSIS 学习之旅 FTP文件传输-FTP任务
设计:
通过Demon库的Users表数据生成CSV文件。
生成后的CSV文件抛送到FTP指定目录下。
创建语句:
[sql] view plain copy
-- 创建一个数据库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.创建脚本任务
通过脚本任务来生成文件名称及完整路径信息
2.创建本地目录
通过文件系统任务在本地生成存放CSV文件路径
3.创建数据流任务
通过数据流任务来生成CSV文件
4.创建平面文件连接管理器
记得给csv文件路径及名称
5.创建脚本任务
辅助方法:
[csharp] view plain copy
/// <summary>
/// 上传
/// </summary>
/// <param name="FilePathPendingAndName">文件详细路径</param>
/// <param name="FTPUrl">FTPUrl</param>
/// <param name="FTP_UserName">用户名</param>
/// <param name="FTP_PWD">密码</param>
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服务器
/// <summary>
/// 连接FTP服务器
/// </summary>
/// <param name="FtpServerIP">FTP连接地址</param>
/// <param name="FtpRemotePath">指定FTP连接成功后的当前目录, 如果不指定即默认为根目录</param>
public string FTPHelper(string FtpServerIP, string FtpRemotePath)
{
string ftpURI = "ftp://" + FtpServerIP + "/" + FtpRemotePath + "/";
return ftpURI;
}
#endregion
6.运行项目
到FTP可以查询 抛送的文件信息
注意:FTP必须要有相应的路径 否则会找不到路径的哟。
转载于:https://blog.51cto.com/57388/2109203