国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#創(chuàng)建數(shù)據(jù)庫及附加數(shù)據(jù)庫的操作方法

2020-01-24 01:05:08
字體:
供稿:網(wǎng)友

本文實(shí)例講述了C#創(chuàng)建數(shù)據(jù)庫及附加數(shù)據(jù)庫的操作方法。分享給大家供大家參考,具體如下:

/// <summary>/// 附加數(shù)據(jù)庫方法/// </summary>/// <param name="strSql">連接數(shù)據(jù)庫字符串,連接master系統(tǒng)數(shù)據(jù)庫</param>/// <param name="DataName">數(shù)據(jù)庫名字</param>/// <param name="strMdf">數(shù)據(jù)庫文件MDF的路徑</param>/// <param name="strLdf">數(shù)據(jù)庫文件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("數(shù)據(jù)庫安裝成功!點(diǎn)擊確定繼續(xù)");//需Using System.Windows.Forms  }  catch(Exception e)  {   MessageBox.Show("數(shù)據(jù)庫安裝失敗!" + e.Message+"/n/n"+"您可以手動(dòng)附加數(shù)據(jù)");   System.Diagnostics.Process.Start(path);//打開安裝目錄  }  finally  {   myConn.Close();  }}public override void Install(System.Collections.IDictionary stateSaver){  string server = this.Context.Parameters["server"];//服務(wù)器名稱  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";//連接數(shù)據(jù)庫字符串  string DataName = "JXC";//數(shù)據(jù)庫名  string strMdf = path + @"JXC.mdf";//MDF文件路徑,這里需注意文件名要與剛添加的數(shù)據(jù)庫文件名一樣!  string strLdf = path + @"jxc_log.ldf";//LDF文件路徑  base.Install(stateSaver);  this.CreateDataBase(strSql, DataName, strMdf, strLdf, path);//開始創(chuàng)建數(shù)據(jù)庫}/// <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數(shù)據(jù)庫配置有誤,請正確配置信息!");    }}/// <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>/// 創(chuàng)建數(shù)據(jù)庫/// </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);    //因?yàn)橛蠫o在SQLCommand中不認(rèn)識(shí),所以以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數(shù)據(jù)庫配置不正確!");    }}/// <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;}

更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《C#程序設(shè)計(jì)之線程使用技巧總結(jié)》、《C#操作Excel技巧總結(jié)》、《C#中XML文件操作技巧匯總》、《C#常見控件用法教程》、《WinForm控件用法總結(jié)》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#數(shù)組操作技巧總結(jié)》及《C#面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程

希望本文所述對大家C#程序設(shè)計(jì)有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 沁阳市| 淅川县| 通化县| 密云县| 运城市| 阿巴嘎旗| 包头市| 色达县| 安图县| 邹平县| 米脂县| 莱州市| 河源市| 岫岩| 句容市| 三台县| 贵阳市| 广南县| 铁力市| 尼勒克县| 仁布县| 富阳市| 昆山市| 方城县| 无为县| 德州市| 辽宁省| 收藏| 津南区| 大方县| 遂昌县| 福海县| 阳新县| 奈曼旗| 安陆市| 马关县| 屏东县| 二连浩特市| 泊头市| 阿拉善盟| 中阳县|