Csharp run sql script create database

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Windows.Forms;
  9 using System.Data.SqlClient;
 10 using System.Data.Sql;
 11 using Microsoft.SqlServer.Management.Common;//引用Microsoft.SqlServer.ConnectionInfo
 12 using Microsoft.SqlServer.Management.Smo;
 13 using Microsoft.SqlServer.Management.Nmo;
 14 using System.IO;
 15 using System.ServiceProcess;//添加引用
 16 
 17 namespace Skype
 18 {
 19     /// <summary>
 20     /// 20120813 塗聚文 Geovin Du
 21     /// csharp run sql script create database
 22     /// </summary>
 23     public partial class InstallingSQLForm : Form
 24     {
 25         /// <summary>
 26         /// 
 27         /// </summary>
 28         public InstallingSQLForm()
 29         {
 30             InitializeComponent();
 31         }
 32         /// <summary>
 33         /// 用腳本安裝SQL Server 2005數據庫
 34         /// 20120813 塗聚文 締友計算機信息技術有限公司
 35         /// </summary>
 36         /// <param name="sender"></param>
 37         /// <param name="e"></param>
 38         private void InstallingSQLForm_Load(object sender, EventArgs e)
 39         {
 40             
 41             DataTable dt = new DataTable();
 42             dt.Columns.Add("ID", typeof(int));
 43             dt.Columns.Add("Databases", typeof(string));
 44             dt.Columns.Add("Tables", typeof(string));
 45             try
 46             {
 47                 
 48 
 49 
 50                 Server server = new Server(@"B2FC96ADD7DC472\GEOVINDU");
 51                 Database dbMaster = server.Databases["Master"];
 52                 string strScriptDir = string.Empty;
 53                 string strInstnwd = "instnwd.sql";
 54                 string strInstpub = "instpubs.sql";
 55                 strScriptDir = @"C:\filese\" + @"setup\";
 56                 if (!server.Databases.Contains("Northwind"))
 57                 {
 58                     if (File.Exists(strScriptDir + strInstnwd))
 59                     {
 60                         MessageBox.Show("創建數據庫Northwind。。。");
 61                         StreamReader rdr = new StreamReader(strScriptDir + strInstnwd);
 62                         dbMaster.ExecuteNonQuery(rdr.ReadToEnd());
 63                     }
 64                 }
 65                 if (!server.Databases.Contains("pubs"))
 66                 {
 67                     if (File.Exists(strScriptDir + strInstpub))
 68                     {
 69                         MessageBox.Show("創建數據庫pubs。。。");
 70                         StreamReader rdr = new StreamReader(strScriptDir + strInstpub);
 71                         dbMaster.ExecuteNonQuery(rdr.ReadToEnd());
 72                     }
 73                 }
 74                 //顯示所有數據庫及數據庫的表;
 75                 //如果是脫機狀態,後面的數據庫讀不出來,會報錯。如何判斷數據庫是脫機狀態呢?
 76                 //20120813 塗聚文 締友計算機信息技術有限公司
 77                 int i = 0;
 78                 foreach (Database db in server.Databases)
 79                 {
 80                     //db.Name;
 81                     
 82 
 83                     if (db.Tables.Count > 0)
 84                     {
 85                         foreach (Table tbl in db.Tables)
 86                         {
 87                             //tbl.Name;
 88                             dt.Rows.Add(i, db.Name, tbl.Name);
 89                             i++;
 90                         }
 91                     }
 92                     else
 93                     {
 94                         dt.Rows.Add(i, db.Name, null);
 95                         i++;
 96                     }
 97                 }
 98 
 99                 this.dataGridView1.DataSource = dt;
100          
101             }
102             catch (SqlServerManagementException ex)
103             {
104                 this.dataGridView1.DataSource = dt;
105                 ex.Message.ToString();
106             }
107 
108         }
109 
110         /// <summary>
111         /// 判断数据库服务是否已经启动,如果已经启动就返回True,否则返回False
112         /// </summary>
113         /// <returns></returns>
114         private bool DBServerStatus()
115         {
116             bool ExistFlag = false;
117             ServiceController[] service = ServiceController.GetServices();
118             for (int i = 0; i < service.Length; i++)
119             {
120                 if (service[i].ServiceName.ToString().Contains(@"B2FC96ADD7DC472\GEOVINDU"))
121                 {
122                     ExistFlag = true;
123                     string strOuput = string.Format("数据库服务器启动了服务名:{0},服务显示名:{1}\n", service[i].ServiceName, service[i].DisplayName);
124                     MessageBox.Show(strOuput);
125                 }
126             }
127             return ExistFlag;
128         }
129 
130 
131 
132     }
133 }

 

posted @ 2012-08-14 10:46  ®Geovin Du Dream Park™  阅读(501)  评论(1编辑  收藏  举报