C#创建数据库及附加数据库的操作方法
本文实例讲述了C#创建数据库及附加数据库的操作方法。分享给大家供大家参考,具体如下:
///<summary> ///附加数据库方法 ///</summary> ///<paramname="strSql">连接数据库字符串,连接master系统数据库</param> ///<paramname="DataName">数据库名字</param> ///<paramname="strMdf">数据库文件MDF的路径</param> ///<paramname="strLdf">数据库文件LDF的路径</param> ///<paramname="path">安装目录</param> privatevoidCreateDataBase(stringstrSql,stringDataName,stringstrMdf,stringstrLdf,stringpath) { SqlConnectionmyConn=newSqlConnection(strSql); Stringstr=null; try { str="EXECsp_attach_db@dbname='"+DataName+"',@filename1='"+strMdf+"',@filename2='"+strLdf+"'"; SqlCommandmyCommand=newSqlCommand(str,myConn); myConn.Open(); myCommand.ExecuteNonQuery(); MessageBox.Show("数据库安装成功!点击确定继续");//需UsingSystem.Windows.Forms } catch(Exceptione) { MessageBox.Show("数据库安装失败!"+e.Message+"\n\n"+"您可以手动附加数据"); System.Diagnostics.Process.Start(path);//打开安装目录 } finally { myConn.Close(); } } publicoverridevoidInstall(System.Collections.IDictionarystateSaver) { stringserver=this.Context.Parameters["server"];//服务器名称 stringuid=this.Context.Parameters["user"];//SQlServer用户名 stringpwd=this.Context.Parameters["pwd"];//密码 stringpath=this.Context.Parameters["targetdir"];//安装目录 stringstrSql="server="+server+";uid="+uid+";pwd="+pwd+";database=master";//连接数据库字符串 stringDataName="JXC";//数据库名 stringstrMdf=path+@"JXC.mdf";//MDF文件路径,这里需注意文件名要与刚添加的数据库文件名一样! stringstrLdf=path+@"jxc_log.ldf";//LDF文件路径 base.Install(stateSaver); this.CreateDataBase(strSql,DataName,strMdf,strLdf,path);//开始创建数据库 } ///<summary> ///测试连接 ///</summary> ///<paramname="serverName"></param> ///<paramname="dbName"></param> ///<paramname="userName"></param> ///<paramname="password"></param> privateSqlConnectionTestConnection(stringserverName,stringdbName,stringuserName,stringpassword) { stringconnectionString=GetConnectionString(serverName,dbName,userName,password); SqlConnectionconnection=newSqlConnection(connectionString); try { if(connection.State!=ConnectionState.Open) { connection.Open(); } returnconnection; } catch { CloseConnection(connection); thrownewInstallException("安装失败!\n数据库配置有误,请正确配置信息!"); } } ///<summary> ///得到连接字符串 ///</summary> ///<paramname="serverName"></param> ///<paramname="dbName"></param> ///<paramname="userName"></param> ///<paramname="password"></param> ///<returns></returns> privatestringGetConnectionString(stringserverName,stringdbName,stringuserName,stringpassword) { stringconnectionString="DataSource={0};InitialCatalog={1};UserID={2};Password={3}"; connectionString=string.Format(connectionString,serverName,dbName,userName,password); returnconnectionString; } ///<summary> ///创建数据库 ///</summary> ///<paramname="serverName"></param> ///<paramname="dbName"></param> ///<paramname="userName"></param> ///<paramname="password"></param> ///<paramname="connection"></param> ///<paramname="stateSaver"></param> publicintCreateDataBase(SqlConnectionconnection) { intresult=-1; connection.ChangeDatabase("master"); stringcreateDBSql=@"ifExists(select1fromsysdatabaseswhere[name]=N'{0}') begin dropdatabase{0} end GO CREATEDATABASE{0}"; createDBSql=string.Format(createDBSql,_dbName); //因为有Go在SQLCommand中不认识,所以以Go为分隔符取sql语句 char[]split=newchar[]{'G','O'}; string[]sqlList=createDBSql.Split(split); SqlCommandcommand=null; try { command=connection.CreateCommand(); command.CommandType=System.Data.CommandType.Text; foreach(stringsqlIteminsqlList) { if(sqlItem.Length>2) { command.CommandText=sqlItem; result=command.ExecuteNonQuery(); } } returnresult; } catch { CloseConnection(connection); command.Dispose(); thrownewInstallException("安装失败!\n数据库配置不正确!"); } } ///<summary> ///分隔SQL语句 ///</summary> ///<paramname="sql"></param> ///<returns></returns> privatestring[]splitSql(stringsql) { Regexregex=newRegex("^GO",RegexOptions.IgnoreCase|RegexOptions.Multiline); string[]sqlList=regex.Split(sql.ToUpper()); returnsqlList; }
更多关于C#相关内容感兴趣的读者可查看本站专题:《C#程序设计之线程使用技巧总结》、《C#操作Excel技巧总结》、《C#中XML文件操作技巧汇总》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#数组操作技巧总结》及《C#面向对象程序设计入门教程》
希望本文所述对大家C#程序设计有所帮助。