现在好多程序,都是与数据库相关的,因此在做安装的时候,部署数据库看似是一件很复杂的事情。其实就我个人而言,部署数据库是很简单,大致的思路如下:
1. 用本身的DBMS来产生数据库创建的SQL脚本;
2. 接下来就是写程序来执行SQL脚本,从而达到创建数据库的目的。
以下用一个举例来说明,数据库服务器用的是SQL Server。
首先要在数据库生成好的SQL脚本最前头,加入如下语句:
use master
GO
if exists ( select * from sysdatabases where name = ' mytest ' )
drop database mytest
GO
create database mytest
GO
use mytest
GO
注:其中“mytest”是要创建的数据库名。
而程序的代码如下:
// ---------------------------Create DB-------------------------------------
// -------------------------------------------------------------------------
// ---File:frmCreateDB.cs
// ---Description:The main form file to create database using specific SQL file
// ---Author:Knight
// ---Date:Mar.18, 2006
// -------------------------------------------------------------------------
// -------------------------{ Create DB }-----------------------------------
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
using System.IO;
namespace CreateDB
{
/// <summary>
/// Summary description for frmCreateDB.
/// </summary>
public class frmCreateDB : System.Windows.Forms.Form
{
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox txtServerName;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox txtUserName;
private System.Windows.Forms.TextBox txtPassword;
private System.Windows.Forms.Button btnCreateDB;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null ;
public frmCreateDB()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if ( disposing )
{
if (components != null )
{
components.Dispose();
}
}
base .Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private