TransmitFile实现下载    

protected void Button1_Click(object sender, EventArgs e)

     {
         /* 
         微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite 
         下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题。 
         代码如下: 
         */ 
         Response.ContentType = "application/x-zip-compressed";
         Response.AddHeader("Content-Disposition", "attachment;filename=z.zip");
         string filename = Server.MapPath("DownLoad/z.zip");
         Response.TransmitFile(filename);
     }
     //WriteFile实现下载 
     protected void Button2_Click(object sender, EventArgs e)
     {
         /* 
         using System.IO;
         */
         string fileName = "asd.txt";//客户端保存的文件名 
         string filePath = Server.MapPath("DownLoad/aaa.txt");//路径
         FileInfo fileInfo = new FileInfo(filePath);
         Response.Clear();
         Response.ClearContent();
         Response.ClearHeaders();
         Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
         Response.AddHeader("Content-Length", fileInfo.Length.ToString());
         Response.AddHeader("Content-Transfer-Encoding", "binary");
         Response.ContentType = "application/octet-stream";
         Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
         Response.WriteFile(fileInfo.FullName);
         Response.Flush();
         Response.End();
     }
     //WriteFile分块下载 
     protected void Button3_Click(object sender, EventArgs e)
     {
         string fileName = "aaa.txt";//客户端保存的文件名 
         string filePath = Server.MapPath("DownLoad/aaa.txt");//路径
         System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);
         if (fileInfo.Exists == true)
         {
             const long ChunkSize = 102400;//100K 每次读取文件,只读取100K,这样可以缓解服务器的压力 
             byte[] buffer = new byte[ChunkSize];
             Response.Clear();
             System.IO.FileStream iStream = System.IO.File.OpenRead(filePath);
             long dataLengthToRead = iStream.Length;//获取下载的文件总大小 
             Response.ContentType = "application/octet-stream";
             Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName));
             while (dataLengthToRead > 0 && Response.IsClientConnected)
             {
                 int lengthRead = iStream.Read(buffer, 0, Convert.ToInt32(ChunkSize));//读取的大小 
                 Response.OutputStream.Write(buffer, 0, lengthRead);
                 Response.Flush();
                 dataLengthToRead = dataLengthToRead - lengthRead;
             }
             Response.Close();
         }
     }
     //流方式下载 
     protected void Button4_Click(object sender, EventArgs e)
     {
         string fileName = "aaa.txt";//客户端保存的文件名 
         string filePath = Server.MapPath("DownLoad/aaa.txt");//路径
         //以字符流的形式下载文件 
         FileStream fs = new FileStream(filePath, FileMode.Open);
         byte[] bytes = new byte[(int)fs.Length];
         fs.Read(bytes, 0, bytes.Length);
         fs.Close();
         Response.ContentType = "application/octet-stream";
         //通知浏览器下载文件而不是打开 
         Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
         Response.BinaryWrite(bytes);
         Response.Flush();
         Response.End();
     }
//----------------------------------------------------------

public void DownloadFile( System.Web.UI.Page WebForm,String FileNameWhenUserDownload ,String FileBody )
{
  WebForm.Response.ClearHeaders();
  WebForm.Response.Clear();
  WebForm.Response.Expires = 0;
  WebForm.Response.Buffer = true;
  WebForm.Response.AddHeader("Accept-Language", "zh-tw");
  //'文件名称
  WebForm.Response.AddHeader("content-disposition", "attachment; filename='"+System.Web.HttpUtility.UrlEncode(FileNameWhenUserDownload, System.Text.Encoding.UTF8)+"'");
  WebForm.Response.ContentType = "Application/octet-stream";
  //'文件内容
  WebForm.Response.Write(FileBody);//-----------
     WebForm.Response.End();
}
//上面这段代码是下载一个动态产生的文本文件,若这个文件已经存在于服务器端的实体路径,则可以通过下面的函数:
public void DownloadFileByFilePath( System.Web.UI.Page WebForm,String FileNameWhenUserDownload ,String FilePath )
{
  WebForm.Response.ClearHeaders();
  WebForm.Response.Clear();
  WebForm.Response.Expires = 0;
     WebForm.Response.Buffer = true;
  WebForm.Response.AddHeader("Accept-Language", "zh-tw");
  //文件名称
  WebForm.Response.AddHeader("content-disposition", "attachment; filename='" + System.Web.HttpUtility.UrlEncode(FileNameWhenUserDownload, System.Text.Encoding.UTF8) +"'" );
  WebForm.Response.ContentType = "Application/octet-stream";
  //文件内容
  WebForm.Response.Write(System.IO.File.ReadAllBytes(FilePath));//---------
  WebForm.Response.End();
}
posted @ 2009-11-16 17:08 BlueFly 阅读(203) 评论(0) 编辑
方法一:

在打包项目中添加文件msiexec.exe(一般在c:"windows"system32(系统目录中)找到)。

在文件系统视图中选择应用程序文件,在msiexec.exe上单击右键选择“创建快捷方式”,重命名快捷方式为“uninst”.

更改此快捷方式Argmuments为“/x {产品ID}”,产品ID的值为打包项目的ProductCode属性值。

方法二:

先生成安装包,记下ProudctCode(选择解决方案资源管理根目录如Setup1,再查看属性标签,不是右键属性),下面用到

用Vs.Net 建立一个新的控制台程序uninst.exe文件。

代码如下:

using System; 

namespace uninst

{

     /// <summary>

     /// Class1 的摘要说明。

     /// </summary>

     class UnInstall

     {

         /// <summary>

         /// 应用程序的主入口点。

         /// </summary>

         [STAThread]

         static void Main(string[] args)

         {

              string sysroot = System.Environment.SystemDirectory;

              System.Diagnostics.Process.Start(sysroot + """msiexec.exe", "/x {850FED90-20D0-4EBA-BEDB-3D9DBA25F6EC} /qr");

         }

     }

}

编译过后,将生成的uninst.exe文件添加到安装包中,重新生成安装项目。

 

 

转自:http://www.cnblogs.com/jenry/articles/255343.html

posted @ 2009-03-18 09:02 BlueFly 阅读(124) 评论(0) 编辑

我想完成的功能是将多行文本框中的回车换行符(\r\n) 替换成逗号(,)。

使用var s = document.all('TextBoxData').value获取其值时,程序工作正常,但使用$("#TextBoxData").val()获取其值时,程序工作不正常。

百思不得其解,郁闷中...


<script src="../js/jquery.pack.js" type="text/javascript"></script>
<script src="../js/jquery-1.2.6-vsdoc.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
$(
function() {
$(
"a").focus(function() { this.blur(); }); 
$(
"#btnCancel").click(function() { window.close(); }); 
$(
"#btnOK").click(function() 

var values = $.trim($("#TextBoxData").val()); 
if (values.length == 0

window.alert(
"注意:您没有输入任何项。若放弃输入请按“取消”。"); 
return false

else 

var s = document.all('TextBoxData').value; //若使用 var s = values; 则无法完成\r\n --> “,”的替换!$("#TextBoxData").val()是如何获取 textarea 中的value?
= s.replace(/\r\n/g, ","); 
window.returnValue 
= s; 
window.close(); 

return false
}); 
});
</script>
<form id="form1" runat="server">
     
<div style="width: 99%">
     
<div style="padding: 10px; text-align: center">
<asp:textbox id="TextBoxData" runat="server" height="300px" width="100%" textmode="MultiLine"> </asp:textbox></div>
     
<div style="padding: 20px; text-align: center"> <asp:button id="btnOK" runat="server" text="确定" width="60px">   <asp:button id="btnCancel" runat="server" text="取消" width="60px"> </asp:button></asp:button></div>
     
<div> 注:请在文本框中输入若干行单列的值。</div>
     
</div>
</form>
posted @ 2009-01-23 17:25 BlueFly 阅读(2163) 评论(4) 编辑
ASP.NET 1.1,32 位版本
要运行 32 位版本的 ASP.NET 1.1,按照以下步骤操作: 
1.单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
2.键入以下命令启用 32 位模式: cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1 
3.键入以下命令,安装 ASP.NET 1.1 版本并在 IIS 根目录下安装脚本映射: %SYSTEMROOT%\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i 
4.确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 1.1.4322 的状态设置为允许

ASP.NET 2.0,32 位版本
要运行 32 位版本的 ASP.NET 2.0,请按照以下步骤操作: 
1.单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
2.键入以下命令启用 32 位模式: cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1 
3.键入以下命令,安装 ASP.NET 2.0(32 位)版本并在 IIS 根目录下安装脚本映射: %SYSTEMROOT%\Microsoft.NET\Framework\v2.0.40607\aspnet_regiis.exe -i 
4.确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607(32 位)的状态设置为允许

ASP.NET 2.0,64 位版本
要运行 64 位版本的 ASP.NET 2.0,请按照以下步骤操作: 
1.单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
2.键入以下命令禁用 32 位模式: cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0 
3.键入以下命令,安装 ASP.NET 2.0 版本并在 IIS 根目录下安装脚本映射: %SYSTEMROOT%\Microsoft.NET\Framework64\v2.0.40607\aspnet_regiis.exe -i 
4.确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607 的状态设置为允许 

一个例子:在64位机器上运行32位版本的ASP.NET 2.0.**** 

iisresetcscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0 
%SYSTEMROOT%\Microsoft.NET\Framework64\v2.0.40607\aspnet_regiis.exe -ua 
iisreset
%SYSTEMROOT%\Microsoft.NET\Framework64\v2.0.40607\aspnet_regiis.exe -i -enable 
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1 
%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.40607\aspnet_regiis.exe -i -enable 

iisreset 

--转自http://qzone.qq.com/blog/33927597-1212073914 

posted @ 2009-01-14 13:39 BlueFly 阅读(307) 评论(0) 编辑

有时我们需要从DataTable中抽取Distinct数据,以前总是以对DataTable进行foreach之类纯手工方式获取。

近来发现DataView可以帮我们直接获取Distinct数据,汗一个!

DataTable dataTable;

DataView dataView = dataTable.DefaultView;

DataTable dataTableDistinct = dataView.ToTable(true,"FieldName1","FieldName2","...");//注:其中ToTable()的第一个参数为是否DISTINCT

 

 

posted @ 2009-01-08 20:49 BlueFly 阅读(3537) 评论(7) 编辑
posted @ 2008-09-03 21:07 BlueFly 阅读(53) 评论(0) 编辑
摘要: 牛!偶然的一个机会,gmail突然弹出一个消息框如下图所示:不知哪位大虾知道如何实现这个功能?阅读全文
posted @ 2008-08-05 21:34 BlueFly 阅读(4303) 评论(5) 编辑
摘要: 近来正在学习jQuery,jQuery的功能确实好强,尤其是有非常多的插件支持。不知道jQuery有没有绘制流程图之类的插件?阅读全文
posted @ 2008-07-24 17:01 BlueFly 阅读(665) 评论(1) 编辑
摘要: 跟MS VISIO差不了多少!地址:http://draw.labs.autodesk.com/ADDraw/draw.html阅读全文
posted @ 2008-07-24 16:48 BlueFly 阅读(863) 评论(0) 编辑
摘要: 今天突然发现如下两条语句的执行结果一样。--1。SELECT * FROM tblmainmenu WHERE caption = '待办工作 '--2。SELECT * FROM tblMainMenu WHERE Caption = '待办工作'后来发现如下语句也会得到 1。SELECT (CASE WHEN '待办工作 ' = '待办工作' THEN 1 ELSE 0 END)结论是,SQL...阅读全文
posted @ 2008-06-06 13:32 BlueFly 阅读(879) 评论(2) 编辑