虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > C#编程 > C#创建数据库及附加数据库的操作方法

C#创建数据库及附加数据库的操作方法
类别:C#编程   作者:码皇   来源:互联网   点击:

这篇文章主要介绍了C 创建数据库及附加数据库的操作方法,涉及C 针对数据库常见的创建、添加、连接等操作技巧,需要的朋友可以参考下

本文实例讲述了C#创建数据库及附加数据库的操作方法。分享给大家供大家参考,具体如下:

    /// <summary>/// 附加数据库方法/// </summary>/// <param name="strSql">连接数据库字符串,连接master系统数据库</param>/// <param name="DataName">数据库名字</param>/// <param name="strMdf">数据库文件MDF的路径</param>/// <param name="strLdf">数据库文件LDF的路径</param>/// <param name="path">安装目录</param>private void CreateDataBase( string strSql, string DataName, string strMdf, string strLdf, string path){
    SqlConnection myConn = new SqlConnection(strSql);
    String str = null ;
    try {
    str = " EXEC sp_attach_db @dbname='"+DataName+"',@filename1='"+strMdf+"',@filename2='"+strLdf+"'";
    SqlCommand myCommand = new SqlCommand(str, myConn);
    myConn.Open();
    myCommand.ExecuteNonQuery();
    MessageBox.Show("数据库安装成功!点击确定继续");
    //需Using System.Windows.Forms }
    catch(Exception e) {
    MessageBox.Show("数据库安装失败!" + e.Message+"nn"+"您可以手动附加数据");
    System.Diagnostics.Process.Start(path);
    //打开安装目录 }
    finally {
    myConn.Close();
    }
    }
    public override void Install(System.Collections.IDictionary stateSaver){
    string server = this.Context.Parameters["server"];
    //服务器名称 string uid = this.Context.Parameters["user"];
    //SQlServer用户名 string pwd = this.Context.Parameters["pwd"];
    //密码 string path = this.Context.Parameters["targetdir"];
    //安装目录 string strSql = "server=" + server + ";
    uid=" + uid + ";
    pwd=" + pwd + ";
    database=master";
    //连接数据库字符串 string DataName = "JXC";
    //数据库名 string strMdf = path + @"JXC.mdf";
    //MDF文件路径,这里需注意文件名要与刚添加的数据库文件名一样! string strLdf = path + @"jxc_log.ldf";
    //LDF文件路径 base.Install(stateSaver);
    this.CreateDataBase(strSql, DataName, strMdf, strLdf, path);
    //开始创建数据库}
    /// <summary>/// 测试连接/// </summary>/// <param name="serverName"></param>/// <param name="dbName"></param>/// <param name="userName"></param>/// <param name="password"></param>private SqlConnection TestConnection(string serverName, string dbName, string userName, string password){
    string connectionString = GetConnectionString(serverName, dbName, userName, password);
    SqlConnection connection = new SqlConnection(connectionString);
    try {
    if (connection.State != ConnectionState.Open) {
    connection.Open();
    }
    return connection;
    }
    catch {
    CloseConnection(connection);
    throw new InstallException("安装失败!n数据库配置有误,请正确配置信息!");
    }
    }
    /// <summary>/// 得到连接字符串/// </summary>/// <param name="serverName"></param>/// <param name="dbName"></param>/// <param name="userName"></param>/// <param name="password"></param>/// <returns></returns>private string GetConnectionString(string serverName, string dbName, string userName, string password){
    string connectionString = "Data Source={
    0}
    ;
    Initial Catalog={
    1}
    ;
    User ID={
    2}
    ;
    Password={
    3}
    ";
    connectionString = string.Format(connectionString, serverName, dbName, userName, password);
    return connectionString;
    }
    /// <summary>/// 创建数据库/// </summary>/// <param name="serverName"></param>/// <param name="dbName"></param>/// <param name="userName"></param>/// <param name="password"></param>/// <param name="connection"></param>/// <param name="stateSaver"></param>public int CreateDataBase(SqlConnection connection){
    int result = -1;
    connection.ChangeDatabase("master");
    string createDBSql = @" if Exists(select 1 from sysdatabases where [name]=N'{
    0}
    ') begin drop database {
    0}
    end GO CREATE DATABASE {
    0}
    ";
    createDBSql = string.Format(createDBSql, _dbName);
    //因为有Go在SQLCommand中不认识,所以以Go为分隔符取sql语句 char[] split = new char[] {
    'G', 'O' }
    ;
    string[] sqlList = createDBSql.Split(split);
    SqlCommand command = null;
    try {
    command = connection.CreateCommand();
    command.CommandType = System.Data.CommandType.Text;
    foreach (string sqlItem in sqlList) {
    if (sqlItem.Length > 2) {
    command.CommandText = sqlItem;
    result = command.ExecuteNonQuery();
    }
    }
    return result;
    }
    catch {
    CloseConnection(connection);
    command.Dispose();
    throw new InstallException("安装失败!n数据库配置不正确!");
    }
    }
    /// <summary>/// 分隔SQL语句/// </summary>/// <param name="sql"></param>/// <returns></returns>private string[] splitSql(string sql){
    Regex regex = new Regex("^GO", RegexOptions.IgnoreCase | RegexOptions.Multiline);
    string[] sqlList = regex.Split(sql.ToUpper());
    return sqlList;
    }

更多关于C#相关内容感兴趣的读者可查看本站专题:《C#程序设计之线程使用技巧总结》、《C#操作Excel技巧总结》、《C#中XML文件操作技巧汇总》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#数组操作技巧总结》及《C#面向对象程序设计入门教程

希望本文所述对大家C#程序设计有所帮助。

相关热词搜索: C 创建数据库 附加数据库