我正在制作一个从网站下载文件的ssis包。为了获得正确的链接,我存储了一个“full result set”(对象变量),然后使用“for each loop container”遍历代码(作为字符串变量)。
示例url:https://website/data/date1.aspx. 如果打开此链接,它将自动下载excel文件date1.xlsx。
到目前为止,我已经制作了以下c代码:
public void Main()
{
string testfile = Dts.Variables["User::filename2"].Value.ToString();
string[] arr = new string[] {testfile};
try
{
string myURI = "https://website/data/";
string myWebString = null, myLocalPath = null;
WebClient myWebClient = new WebClient();
foreach (string fileName in arr)
{
myWebString = myURI + fileName;
myLocalPath = "c:\\sql\\" + fileName+".xlsx";
myWebClient.DownloadFile(myWebString, myLocalPath);
}
Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception ex)
{
Dts.Events.FireError(18, "The process failed", ex.ToString(), "", 0);
Dts.TaskResult = (int)ScriptResults.Failure;
}
Dts.TaskResult = (int)ScriptResults.Success;
}
#region ScriptResults declaration
/// <summary>
/// This enum provides a convenient shorthand within the scope of this class for setting the
/// result of the script.
///
/// This code was generated automatically.
/// </summary>
enum ScriptResults
{
Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
};
#endregion
}
我使用的变量是“date1.aspx”,“date2.aspx”等等。。。这些文件现在自动下载并存储为“date1.aspx.xlsx”和“date2.aspx.xlsx”。
但是,当我打开excel文件时,我看到文件已损坏。但是当我用data>从文件excel导入它时,excel能够正确地打开文件。
我想我的代码有问题。我没有c语言背景,所以我真的做了几天的试错法。最后,我想处理ssis包中的文件,所以直接以csv文件格式存储它们会很好,因为excel中的“工作表名称”也会每次都更改,所以我很难进行“for each循环”,因为这样我就需要再次使用额外的代码。
如果有人能帮我就太好了!谢谢您!
excel文件在记事本中的外观如下:
‡ , — ± 3 M ¿ Ù F
` Ó
í * D ¾ Ø + E © Ã A [
£ ½
% š ´ * } — â ü H b
î l †
$ ¡ » 9 ª Ä 6 P º Ô L f ä þ h ‚ â ü T n è s â ü r Œ ü ‰ £ + E © & ” ® 0 — ± F! ` ê! h" ‚ þ" w# ‘ þ# j$ „ ï$ ‚% œ & ®& ¤ M' C â' Ø ^( T ) ý q) g ê) à f* \ ý* ó + w , ø b, X é, ß d- Z Ã- ¹ H. > ß. Õ ^/ T 0 ý Š0 €
1 ü
Œ1 ‚ 2 º2 ° 33 )
±3 §
14 ' ¬4 ¢ &5 ˜5 Ž 6
–6 Œ 47 * ¢7 ˜ 8 †8 | 9
¸9 ® : ®: ¤ (; Ž; „ < ö ’< ˆ ù< ï n= d Ë= Á Q> G µ> « 8? . ¸? ® %@ @ – 3A ) µA « ,B " ¯B ¥ C oC e àC Ö _D U þD ô ’E ˆ F ù F a %G ÷ ‚G T ïG Á MH ÍH Ÿ RI $ ÚI ¬ eJ 7 K × ‘K c %L ÷ ÙL « VM ( íM ¿ |N N ÿN Ñ rO D P × „P V
ëP ½
oQ A ïQ Á vR H S á ’S d
T Ü
¡T s U ð žU p V ë ‹V ] W á ŒW ^ GX ÒX ¤ xY J Z Ø uZ G
[ Ü }[ O \ ä –\ h .] £] u C^ Ô^ ¦ J_ ì_ ¾ }` O ì` ¾ ya K b Ó b S úb Ì ƒc U óc Å vd H üd Î …e W f Û Øf † Ag ï Êg x ih õh £ wi % äi ’ Zj Ïj } Ak ï ¾k l l É Žl < m ¼ ³m a !n Ï n > o À œo J ÿo Žp <
q Å
也许这篇文章提供了解决方案,这有一个类似的问题。但是我不知道如何把它在代码中。。。用httpwebrequest和cookies下载的c文件被损坏
暂无答案!
目前还没有任何答案,快来回答吧!