using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; using System.Data.Sql; using Microsoft.SqlServer.Management.Common;//引用Microsoft.SqlServer.ConnectionInfo using Microsoft.SqlServer.Management.Smo; using Microsoft.SqlServer.Management.Nmo; using System.IO; using System.ServiceProcess;//添加引用 namespace Skype { /// <summary> /// 20120813 塗聚文 Geovin Du /// csharp run sql script create database /// </summary> public partial class InstallingSQLForm : Form { /// <summary> /// /// </summary> public InstallingSQLForm() { InitializeComponent(); } /// <summary> /// 用腳本安裝SQL Server 2005數據庫 /// 20120813 塗聚文 締友計算機信息技術有限公司 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void InstallingSQLForm_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add("ID", typeof(int)); dt.Columns.Add("Databases", typeof(string)); dt.Columns.Add("Tables", typeof(string)); try { Server server = new Server(@"B2FC96ADD7DC472\GEOVINDU"); Database dbMaster = server.Databases["Master"]; string strScriptDir = string.Empty; string strInstnwd = "instnwd.sql"; string strInstpub = "instpubs.sql"; strScriptDir = @"C:\filese\" + @"setup\"; if (!server.Databases.Contains("Northwind")) { if (File.Exists(strScriptDir + strInstnwd)) { MessageBox.Show("創建數據庫Northwind。。。"); StreamReader rdr = new StreamReader(strScriptDir + strInstnwd); dbMaster.ExecuteNonQuery(rdr.ReadToEnd()); } } if (!server.Databases.Contains("pubs")) { if (File.Exists(strScriptDir + strInstpub)) { MessageBox.Show("創建數據庫pubs。。。"); StreamReader rdr = new StreamReader(strScriptDir + strInstpub); dbMaster.ExecuteNonQuery(rdr.ReadToEnd()); } } //顯示所有數據庫及數據庫的表; //如果是脫機狀態,後面的數據庫讀不出來,會報錯。如何判斷數據庫是脫機狀態呢? //20120813 塗聚文 締友計算機信息技術有限公司 int i = 0; foreach (Database db in server.Databases) { //db.Name; if (db.Tables.Count > 0) { foreach (Table tbl in db.Tables) { //tbl.Name; dt.Rows.Add(i, db.Name, tbl.Name); i++; } } else { dt.Rows.Add(i, db.Name, null); i++; } } this.dataGridView1.DataSource = dt; } catch (SqlServerManagementException ex) { this.dataGridView1.DataSource = dt; ex.Message.ToString(); } } /// <summary> /// 判断数据库服务是否已经启动,如果已经启动就返回True,否则返回False /// </summary> /// <returns></returns> private bool DBServerStatus() { bool ExistFlag = false; ServiceController[] service = ServiceController.GetServices(); for (int i = 0; i < service.Length; i++) { if (service[i].ServiceName.ToString().Contains(@"B2FC96ADD7DC472\GEOVINDU")) { ExistFlag = true; string strOuput = string.Format("数据库服务器启动了服务名:{0},服务显示名:{1}\n", service[i].ServiceName, service[i].DisplayName); MessageBox.Show(strOuput); } } return ExistFlag; } } }