判断数据库是否已经存在
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. java Semaphore

    //Listing 6-4. Using a Counting Semaphore to Control Access to a Pool of Items import java.util.conc ...

  2. PIC12F629帮我用C语言写个程序,控制三个LED亮灭

    http://power.baidu.com/question/240873584599025684.html?entry=browse_difficult PIC12F629帮我用C语言写个程序,控 ...

  3. sql索引组织

    select p.*, p.partition_id,  c.object_id,OBJECT_NAME(c.object_id) objectName,c.name,c.column_id,pc.m ...

  4. Qt的IDE开发环境(KDevelop,MonKey Studio,QDevlop,Dev-cpp,Cobras,Edyuk)

    讲到Qt的IDE开发环境,本人一直在Windows下使用VC6.0 + Qt4.3.1开发程序.但转到Linux下,使用Fedora中自带的KDevelop + Qt4.3.1开发程序. 最近一直做Q ...

  5. aspx后台页面添加服务器控件

    System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder(); System.IO.StringWriter st ...

  6. 如何写出无法维护的代码(JAVA版)

    程序命名(针对那些不能混淆的代码) 容易输入的名字.比如:Fred,asdf 单字母的变量名.比如:a,b,c, x,y,z,或者干脆上中文比如(阿隆索肯德基) 有创意地拼写错误.比如:SetPint ...

  7. [Stanford 2011] 知识点小结

    1.获得帮助:option+click /  option+double click 2.@property里的nonatomic,表示非原子性访问,atomic是obj-c里使用的一种线程保护技术, ...

  8. NAT原理与NAT穿越

    最近在看东西的时候发现很多网络程序中都需要NAT穿越,特意在此总结一下. 先做一个约定: 内网A中有:A1(192.168.0.8).A2(192.168.0.9)两用户 网关X1(一个NAT设备)有 ...

  9. MAGENTO程序结构图

    Magento程序结构图(Program Structure Diagram): /app – 程序根目录 /app/etc – 全局配置文件目录 /app/code – 所有模块安装其模型和控制器的 ...

  10. BetterZip,支持rar等多种压缩解压方式(Xcode自身不能解压rar)

    百度云盘下载链接: http://pan.baidu.com/s/1sk7Faw9密码: muw7 rarosx-5.3.0.tar.gz1.解压之后放到/usr/local/目录下(位置可选,不过要 ...