好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

C#创建数据库及导入sql脚本的方法

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

C#创建数据库:

?

/// <summary>

/// 创建数据库

/// </summary>

/// <param name="connStr">连接字符串</param>

/// <param name="_strDBName">数据库名称</param>

/// <returns></returns>

private static bool CreateDatabase( string connStr, string _strDBName)

{

   bool bSuccess = false ;

   try

   {

     using (SqlConnection conMaster = new SqlConnection(connStr))

     {

       conMaster.Open();

       // Check if the Database has existed first

       string strExist = @"select * from dbo.sysdatabases where name='" + _strDBName + @"'" ;

       SqlCommand cmdExist = new SqlCommand(strExist, conMaster);

       SqlDataReader readerExist = cmdExist.ExecuteReader();

       bool bExist = readerExist.HasRows;

       readerExist.Close();

       if (bExist)

       {

         string strDel = @"drop database " + _strDBName;

         SqlCommand cmdDel = new SqlCommand(strDel, conMaster);

         cmdDel.ExecuteNonQuery();

       }

       // Create the database now;    

       string strDatabase = "Create Database [" + _strDBName + "]" ;

       SqlCommand cmdCreate = new SqlCommand(strDatabase, conMaster);

       cmdCreate.ExecuteNonQuery();

       conMaster.Close();

     }

     bSuccess = true ;

   }

   catch (Exception e)

   {

     throw e;

   }

   return bSuccess;

}

C#导入sql脚本:

?

/// <summary>

/// 导入sql脚本

/// </summary>

/// <param name="sqlConnString">连接数据库字符串</param>

/// <param name="varFileName">脚本路径</param>

/// <returns></returns>

private static bool ExecuteSqlFile( string sqlConnString, string varFileName)

{

   if (!File.Exists(varFileName))

   {

     return false ;

   }

   StreamReader rs = new StreamReader(varFileName, System.Text.Encoding.Default);

   ArrayList alSql = new ArrayList();

   string commandText = "" ;

   string varLine = "" ;

   while (rs.Peek() > -1)

   {

     varLine = rs.ReadLine();

     if (varLine == "" )

     {

       continue ;

     }

     if (varLine != "GO" )

     {

       commandText += varLine;

       commandText += "\r\n" ;

     }

     else

     {

       commandText += "" ;

     }

   }

   alSql.Add(commandText);

   rs.Close();

   try

   {

     ExecuteCommand(sqlConnString, alSql);

     return true ;

   }

   catch (Exception ex)

   {

     throw ex;

   }

}

private static void ExecuteCommand( string sqlConnString, ArrayList varSqlList)

{

  using (SqlConnection conn = new SqlConnection(sqlConnString))

  {

   conn.Open();

   //Don't use Transaction, because some commands cannot execute in one Transaction.

   //SqlTransaction varTrans = conn.BeginTransaction();

   SqlCommand command = new SqlCommand();

   command.Connection = conn;

   //command.Transaction = varTrans;

   try

   {

    foreach ( string varcommandText in varSqlList)

    {

     command.CommandText = varcommandText;

     command.ExecuteNonQuery();

    }

    //varTrans.Commit();

   }

   catch (Exception ex)

   {

    //varTrans.Rollback();

    throw ex;

   }

   finally

   {

    conn.Close();

   }

  }

}

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

dy("nrwz");

查看更多关于C#创建数据库及导入sql脚本的方法的详细内容...

  阅读:89次