怎么弹出保存对话框`急

xukaifu 2009-04-22 10:03:49
现在我做一个数据库备份的问题,但不知道怎么把备份的数据保存到用户选择的相应的
文件夹下,怎么弹出保存对话框,类似于winform里的保存对话框一样
...全文
265 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
xukaifu 2009-04-22
  • 打赏
  • 举报
回复
//数据库备份
public static string DbBackup(string dbName,string backupDBName)
{
SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
try
{

Object aip = "PC-200902281508\\SQLEXPRESS";
oSQLServer.LoginSecure = false;
oSQLServer.Connect("PC-200902281508\\SQLEXPRESS","sa","123");
oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
oBackup.Database = dbName;
oBackup.Files = @"d:\\aaa\\"+backupDBName+".bak";
oBackup.BackupSetName = backupDBName;
oBackup.BackupSetDescription = "数据库备份";
oBackup.Initialize = true;
oBackup.SQLBackup(oSQLServer);
return "数据库已成功经备份到["+oBackup.Files+"]";
}
catch(Exception ex)
{
throw new Exception("数据库备份失败: "+ex.Message);
}
finally
{
oSQLServer.DisConnect();
}
}
///
/// 数据库恢复
///
public static string DbRestore(string dbName,string backupFile)
{
SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
try
{
oSQLServer.LoginSecure = false;
oSQLServer.Connect("PC-200902281508\\SQLEXPRESS", "sa", "123");
oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
oRestore.Database = dbName;
oRestore.Files = @"d:\\aaa\\"+backupFile;
oRestore.FileNumber = 1;
oRestore.ReplaceDatabase = true;
oRestore.SQLRestore(oSQLServer);
return "数据库"+dbName+"已经成功恢复!";
}
catch(Exception ex)
{
throw new Exception("数据库恢复失败: "+ex.Message );
}
finally
{
oSQLServer.DisConnect();
}
}

protected void btnSave_Click(object sender, EventArgs e)
{

try
{
//string path = this.File1.Value;//备份到...
string ret = DBOperater.DbBackup(t_db.Text, t_fileName.Text);
this.Label1.Text = ret;
}
catch (Exception ex)
{
this.Label1.Text = ex.Message;
}

}

现在我做的这个只能保存到固定的文件夹下
怎么让用户自己选择
不是用手输

protected void Button1_Click(object sender, EventArgs e)
{
string path = "aa.bak";//this.File1.Value;//恢复文件路径
//杀死所有访问该数据库的进程
string conStr = "data source=PC-200902281508\\SQLEXPRESS;database=master;user id=sa;password=123";
SqlConnection con = new SqlConnection(conStr);
string cmdText = String.Format("EXEC sp_KillThread @dbname='{0}'", t_db.Text);
SqlCommand com = new SqlCommand(cmdText, con);
try
{
con.Open();
com.ExecuteNonQuery();
con.Close();
//恢复数据库
string ret = DBOperater.DbRestore(t_db.Text, path);
this.Label1.Text = ret;
}
catch (Exception ex)
{
con.Close();
this.Label1.Text = ex.Message;
}

}
xukaifu 2009-04-22
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 sayluyun 的回复:]
没看懂LZ的意思 到底是要判断确定还是什么?
return confirm("确定不?")
[/Quote]

不是判断,而是在我点备份的时候弹出一个对话框
选择文件了之后,就保存在相应的文件夹下
类似于按contrl+s弹出的哪个对话框一样
zhnzzy 2009-04-22
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wujinjian2008n 的回复:]
Response.AddHeader("Content-Disposition", "attachment; filename=文件名"); 这句话就是保存对话框

[/Quote]

是的,用RESPONSE输出
ohd 2009-04-22
  • 打赏
  • 举报
回复
...........问题要说详细
sayluyun 2009-04-22
  • 打赏
  • 举报
回复
没看懂LZ的意思 到底是要判断确定还是什么?
return confirm("确定不?")
yuzhlhua 2009-04-22
  • 打赏
  • 举报
回复
MARK
wujinjian2008n 2009-04-22
  • 打赏
  • 举报
回复
Response.AddHeader("Content-Disposition", "attachment; filename=文件名"); 这句话就是保存对话框
zzxap 2009-04-22
  • 打赏
  • 举报
回复
js
return confirm("你要保存嗎")
wxg22526451 2009-04-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xukaifu 的回复:]
我不用下载啊,我只这是内部网站
只需要保存到相应的文件夹下就行了
我用的sqlserver2005
[/Quote]
//那也不行的,保存的服务端路径只能用个文本框具体指定,或用配置指定
访问网站时也是客户端访问的,客户端浏览器无法浏览服务器端的目录文件。
xukaifu 2009-04-22
  • 打赏
  • 举报
回复
我不用下载啊,我只这是内部网站
只需要保存到相应的文件夹下就行了
我用的sqlserver2005
wxg22526451 2009-04-22
  • 打赏
  • 举报
回复
先把数据库备份好
asp.net下载文件参考
    //流方式下载 
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();
}
xushichang 2009-04-22
  • 打赏
  • 举报
回复
关注关注关注
cydall 2009-04-22
  • 打赏
  • 举报
回复
你用的什么数据库?
wxg22526451 2009-04-22
  • 打赏
  • 举报
回复
备份的文件只能保存到服务器上,
再用输出流让客户端可以下载
huang_net 2009-04-22
  • 打赏
  • 举报
回复
confirm("Are you really Delete??")
正常iis5.1安装方法(适用于XP): 第一、先下载IIS5.1压缩包 第二、下载好后,记住你下载的物理路径,最好是直接下载到你的根目录下,比方说直接下载到F盘。不要下载到文件夹里。 第三、IIS5.1是个压缩文件,我们就把它解压到当前文件夹。 第四、打开-开始-控制面板-添加/删除程序-添加删除Windows组件-在Internet信息服务上画对勾(同时还要将详细信息中的方框全部打上勾) 点下一步,这时弹出一个对话框,点确定,弹出以下对话框,点浏览,找到II5.1,点确定,这时电脑开始安装IIS、可是它只安装到现两三格的时候就停下来不安了,因为找不到文件了。你不用害怕,我们继续点浏览,把放文件的地方找出来,比方说F盘,然后电脑继续安装,点打开,点确定,这样的情况大概持续四次,真到安上为止,点完成,这时IIS5.1就真正安到你的电脑里了。 另外还有一种方法是使用光盘,在你安装系统的时候,当然我说的是XP系统,安装完成后,不要取出光盘,打开-开始-控制面板-添加/删除程序-添加删除Windows组件-在Internet信息服务上画对勾{就是将它勾选上},直接安装,很容易就把IIS安上了。不过前提是你的光盘一直不要取出。 最新iis安装问题及解决方法 在安装时遇到的问题 1.iis6.0和5.0都不能装在XP系统中 2.下载了iis5.1后不知道怎么安装 3.安装过程中弹出文件无法复制的对话框和什么系统被修改,是否继续的对话框,很是郁闷 4.安装后internet信息服务器中没有默认网站 5.安装后在地址栏中输入http://localhost/出现Server Application Error 错误即500 错误 6.安装后默认网站无法启动 再说说这些问题的解决方法 问题一:1 在你装IIS之前需要知道你的系统是什么样的,HOME版的好想不能装,可好象网上也有装的方法,我们用过HOME版的,也就没试过,如果你是HOME版的可以去试试。如果你的系统是家庭版的,那就应该知道windows 98 只能装pws4.0;windows 2000 ---iis5.0;windows 2003---iis6.0;windows xp---iis5.1.如果你不是用系统盘安装,那就去网上下载你要装的IIS吧! 问题二:我的系统是xp的,所以我装的是5.1。下载后解压缩放在你硬盘的任何位置。然后开始/设置/控制面板/[添加/删除程序]/[添加/删除windows组建],然后在windows 组件向导中的internet 信息服务旁边的方框里打上勾,(注意:先别按下一步,点击详细信息看看里面的那些方框是不是都打上勾了,如果没有,要全选上,不然会出现问题4)。现在你按下一步,要求你插入光盘,没有盘,点击浏览,选择IIS存放的路径,然后确定,这里也许你就出现问题3了,如果没出现你很幸运! 问题三:如果安装时找不到文件,或文件无法复制,知道是什么原因吗?是windons自带游戏惹的祸。回到Windows组件向导,找到附件和工具,在其详细信息中去掉“游戏”的对勾(不然找不到zClientm.exe)。重新安装,是不是找到了?呵呵,这时会一边边的弹出对话框让你重新选择路径,那就再选一次,不过要注意路径后面好象多了个i386,把它取了,确定。在这里也许会弹出说你的系统不修改的对话框,直接取消,这时你可以歇一下了,可能你已经安装成功了,不过不要太高兴,如果你没遇到后面的问题,你有点幸运! 问题四:如果看不到默认网站,那再打开[添加/删除windows组建]中的internet 信息服务,详细信息里面的勾全打上了,如果没有,重装吧! 问题五:出现这个问题也不知道什么原因,不知道你出现了没有,解决方法是:开始”->“设置”->“控制面板”->“管理工具”->“组件服务”中,“控制台根目录”->“组件服务”->“计算机”->“我的电脑”->“COM+应用程序”中,有一个“IIS Out-Of-Process Pooled”鼠标右键“属性”--“标识”--把“此用户”调整为“交互式用户--目前已登录的用户”。然后“确定”,再鼠标右键“属性”--“启动”。这里还有个问题就是找不到“IIS Out-Of-Process Pooled”,那里面根本没有!怎么 办?别!开始/运行,输入msdtc -resetlog,确定。然后打开开始/设置/控制面板/信息管理/服务,找到Distributed Transaction Coordinator,启动它。现在你又要重装IIS了,现在你应该能看到IIS Out-Of-Process Pooled了,高兴吧! 问题六:好不容易装上来,可地址栏中输入http://localhost/又是网页无法显示,郁闷坏了!细心一看,默认网站没有启动,右键启动提示“服务器并未及时响应启动或控制请求”在网上查了下说是World Wide Web Publishing Services有问题,找到它果然它没启动,可启动它出现错误,启动不了,怎么办?再查吧,又说是要删个更新文件,最后还是弄出来了,正确方法是这样的:开始/设置/控制面板/[添加/删除程序],最上面有个“显示更新文件”打上勾,在里面找到KB939373,删除它。然后开始/设置/控制面板/管理工具/服务,找到World Wide Web Publishing Services,启动它,并将启动方式改为自动,再回到默认网站启动,看看,是不是能启动了,这时终于看到结果了。我的就是这样装上的,一波三折啊,呵呵祝你好运! 如果是XPHome版 首先在“开始”菜单的“运行”中输入“c:\Windows\inf\sysoc.inf”,系统会自动使用记事本打开sysoc.inf这个文件。在sysoc.inf中找到“[Components]”这一段,因为是XP简化版,所以里面东西很少,在里面加上这段:“iis=iis2.dll,OcEntry,iis2.inf,,7”。之后保存并关闭。 因为是XP简化版,所以在下载的安装文件里也一定没有IIS的安装文件了。你可以从本站点击下载IIS安装文件。下载完后,解压到任意盘符的根目录下(最好是根目录,便于后面打命令)。比如我把压缩包解压到了D盘根目录下。 接下来,在运行中输入“CMD”然后回车,打开命令行模式,在命令行下输入下列的两条命令,在每一行命令结束后回车(假设光驱是D盘): EXPand d:\iis51\iis.dl_ c:\Windows\system32\setup\iis2.dll EXPand d:\iis51\iis.in_ c:\Windows\inf\iis2.inf 注意如果你解压到了F盘就把上面的D改为F就可以了,其他同理。这时候,你打开控制面板->添加/删除Windows组件,就会发现,Internet信息服务(IIS)的安装选项已经出现在安装列表里了。 之后的事情,就和平常安装IIS一样了,只不过,在安装的过程中会出现找不到文件的情况(这是正常的,因为你的IIS安装目录没在XP默认的目录下)。这时,你点吉浏览,选择你刚刚解压的目录就可以了,这种让你选择安装文件的现象共会出现3次,每次的目录都按上面说的步骤即可。 不出意外,过一会,IIS就安装完成了,点击“完成”。但做到这一步还不算完。需要对IIS进行一些设置: 从管理工具里打开“Internet服务管理器” 然后点“默认WEB站点”的右键,转到“目录安全性”选项卡,点“匿名访问和验证控制”的“编辑”按钮,回弹出匿名方法新窗口,再点击其中“匿名访问”中的“编辑”按钮,将“允许IIS控制密码”全面的勾去掉,然后一路确定返回就可以了。至此XP简化版安装IIS5.1的步骤就全部完成了。

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧