判断数据库是否已经存在
SqlConnection judgeConn = new SqlConnection("server=.;database=master;uid="+username+";pwd="+userpwd+";");
judgeConn.Open();
SqlCommand command = new SqlCommand("select count(*) from sys.databases where name='"+dbname+"'",judgeConn);
int dbCount = Convert.ToInt32(command.ExecuteScalar());
if(dbCount > 0)
{
//删除数据库
string dropDbName = "Drop database "+dbname;
SqlCommand dropDbCommand = new SqlCommand(dropDbName,judgeConn);
dropDbCommand.ExecuteNonQuery();
}
judgeConn.Close();

附加数据库
public bool ExcuteSqlFiles(string softFileListPath,SqlConnection conn)
{
try
{
string []sqlFiles = Directory.GetFileSystemEntries(softFileListPath);
//假设目录下的都是文件夹
foreach(string file in sqlFiles)
{
if(Directory.Exists(file))
{
ExcuteSqlFiles(file,conn);
}
else
{
FileStream stream = new FileStream(file,FileMode.Open);
StreamReader sr = new StreamReader(stream,System.Text.Encoding.Default);
string sql = sr.ReadToEnd();
SqlCommand command = new SqlCommand(sql,conn);
try
{
executeResult = command.ExecuteNonQuery();
}
catch(Exception ex2)
{
MessageBox.Show(file+" sql文件执行失败! 原因: "+ex2.Message);
return false;
}
}
}
return true;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
return false;
}
}

SqlConnection conn = new SqlConnection();
conn.ConnectionString = @"Data Source="+server+";AttachDbFilename="+dbpath+";database="+dbname+";uid="+username+";pwd="+userpwd+"";
conn.Open(); //附加成功
//执行sql文件
if(!ExcuteSqlFiles(softFileListPath,conn))
{
nextFlag = false;
}
conn.Close();

代码实现sql数据库的附加(通常在安装的时候)的更多相关文章

  1. SQL 数据库无法附加,提示 MDF" 已压缩

    SQL 数据库无法附加,提示 MDF" 已压缩,但未驻留在只读数据库或文件组中.必须将此文件解压缩 1右键点击数据库所在的文件夹,  2点击属性,在常规选项卡中点击高级,  3在弹出的窗口中 ...

  2. Windows Azure 微软公有云体验(一) 网站、SQL数据库、虚拟机

    Windows Azure 微软公有云已经登陆中国有一段时间了,现在是处于试用阶段,Windows Azure的使用将会给管理信息系统的开发.运行.维护带来什么样的新体验呢? Windows Azur ...

  3. DEDECMS数据库执行原理、CMS代码层SQL注入防御思路

    我们在上一篇文章中学习了DEDECMS的模板标签.模板解析原理,以及通过对模板核心类的Hook Patch来对模板的解析流量的攻击模式检测,达到修复模板类代码执行漏洞的目的 http://www.cn ...

  4. SQL 数据库的备份,还原,分离和附加以及聚合函数

    数据库备份 数据库备份可以手动备份和语句备份 一.手动备份数据库 1.鼠标右键选择你要进行备份的数据库-任务-备份 可以在常规选项页面你可以选择备份类型是进行完整数据库备份还是差异数据库备份 2.点击 ...

  5. 存储过程系列之存储过程sql数据库调用和程序代码调用

    1.存储过程,无参数的存储过程 创建无参数存储存储过程 Create Procedure DCEMREMR_TEMPLATEAs SELECT TOP 10 [FILENAME],[FILETITLE ...

  6. C# 动态创建SQL数据库(二) 在.net core web项目中生成二维码 后台Post/Get 请求接口 方式 WebForm 页面ajax 请求后台页面 方法 实现输入框小数多 自动进位展示,编辑时实际值不变 快速掌握Gif动态图实现代码 C#处理和对接HTTP接口请求

    C# 动态创建SQL数据库(二) 使用Entity Framework  创建数据库与表 前面文章有说到使用SQL语句动态创建数据库与数据表,这次直接使用Entriy Framwork 的ORM对象关 ...

  7. C++操作 SQL数据库 实例 代码步骤

    C++连接SQL数据库第一步 系统配置 1.设置SQLSERVER服务器为SQL登录方式,并且系统安全性中的sa用户要设置登录功能为“启用”,还有必须要有密码. 2.需要在ODBC中进行数据源配置,数 ...

  8. SQL数据库问题 解释一下下面的代码 sql 存储过程学习

    SQL数据库问题 解释一下下面的代码 2008-08-13 11:30wssqyl2000 | 分类:数据库DB | 浏览1154次 use mastergocreate proc killspid( ...

  9. C#连接SQL数据库代码

    感觉很有必要总结一下 一:C# 连接SQL数据库  Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername; ...

随机推荐

  1. selenium webdriver

    http://www.blogjava.net/qileilove/archive/2014/02/18/409975.html     Selenium VS Webdriver     Selen ...

  2. Ajax返回中文乱码问题(未解决)

    (未解决) 暂时使用办法:改用返回Map<String,String>形式的返回值,在ajax中获取json形式的数据.

  3. 获取表单的初始值,模拟placeholder属性

    input和textarea有一个默认属性defaultValue,即初始值. 即使在页面操作修改了input和textarea的内容,获取到的defaultValue依然是初始值.可通过该值模拟pl ...

  4. 常用yum命令

    yum list 查询所有可用软件包 yum search 关键字 查询和关键字相关的包 yum -y install 包名 加上-y自动回答yes yum -y update 包名 升级  yum ...

  5. SpringMVC+MyBatis(最新)

    目前主流的Web MVC框架,除了Struts这个主力 外,还有Spring MVC,主要是由于Spring MVC配置比较简单,使用起来也十分明了,非常灵活,与Spring 集成较好,对RESTfu ...

  6. hadoop MapReduce 工作机制

    摸索了将近一个月的hadoop , 在centos上配了一个伪分布式的环境,又折腾了一把hadoop eclipse plugin,最后终于实现了在windows上编写MapReduce程序,在cen ...

  7. Anacodna之conda与 virtualenv对比使用教程,创建虚拟环境

    conda创建虚拟环境 1.查看包 conda list查看安装了哪些包 conda env list查看有哪些虚拟环境 conda -V查看conda的版本 2.创建虚拟环境,命名为myflaska ...

  8. github Mac端的使用案例

    1. 本地有一个仓库,是和网页版的github连接在一起的,平时用Terminal来控制的,怎么放在github的客户端呢? 解决办法: 1.1 点击左上角的+ 号,在弹出框中选择Add,然后choo ...

  9. Insecure world writable dir /usr/local in PATH, mode 040777

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin14/rbconfi ...

  10. android apk简单反编译

    1. 查看或者提取资源文件:     使用谷歌官方工具apktool,命令行如下: apktool d xxx.apk xxx_decode d代表反编译,xxx.apk为你要反编译的apk,xxx_ ...