動(dòng)態(tài)創(chuàng)建SQL Server數(shù)據(jù)庫(kù)表存儲(chǔ)過(guò)程
下面是利用SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)、表、存儲(chǔ)過(guò)程、視圖、索引、規(guī)則、修改表、查看數(shù)據(jù)等的方法。所要增加的控件如下:
Imports System.Data Imports System.Data.SqlClient
Public Class Form1 Inherits System.Windows.Forms.Form Private ConnectionString As String = "Data Source=.;Initial Catalog=;User Id=sa;Password=;" Private reader As SqlDataReader = Nothing Private conn As SqlConnection = Nothing Private cmd As SqlCommand = Nothing Private AlterTableBtn As System.Windows.Forms.Button Private sql As String = Nothing Private CreateOthersBtn As System.Windows.Forms.Button
#Region " Windows 窗體設(shè)計(jì)器生成的代碼 " '窗體重寫處置以清理組件列表。 Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub Public Sub New() MyBase.New() InitializeComponent() End Sub Private components As System.ComponentModel.IContainer Friend WithEvents DataGrid1 As System.Windows.Forms.DataGrid Friend WithEvents CreateDBBtn As System.Windows.Forms.Button Friend WithEvents CreateTableBtn As System.Windows.Forms.Button Friend WithEvents CreateSPBtn As System.Windows.Forms.Button Friend WithEvents CreateViewBtn As System.Windows.Forms.Button Friend WithEvents btnAlterTable As System.Windows.Forms.Button Friend WithEvents btnCreateOthers As System.Windows.Forms.Button Friend WithEvents btnDropTable As System.Windows.Forms.Button Friend WithEvents btnViewData As System.Windows.Forms.Button Friend WithEvents btnViewSP As System.Windows.Forms.Button Friend WithEvents btnViewView As System.Windows.Forms.Button <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.CreateDBBtn = New System.Windows.Forms.Button() Me.CreateTableBtn = New System.Windows.Forms.Button() Me.CreateSPBtn = New System.Windows.Forms.Button() Me.CreateViewBtn = New System.Windows.Forms.Button() Me.btnAlterTable = New System.Windows.Forms.Button() Me.btnCreateOthers = New System.Windows.Forms.Button() Me.btnDropTable = New System.Windows.Forms.Button() Me.btnViewData = New System.Windows.Forms.Button() Me.btnViewSP = New System.Windows.Forms.Button() Me.btnViewView = New System.Windows.Forms.Button() Me.DataGrid1 = New System.Windows.Forms.DataGrid() CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'CreateDBBtn ' Me.CreateDBBtn.Location = New System.Drawing.Point(19, 9) Me.CreateDBBtn.Name = "CreateDBBtn" Me.CreateDBBtn.Size = New System.Drawing.Size(104, 23) Me.CreateDBBtn.TabIndex = 0 Me.CreateDBBtn.Text = "創(chuàng)建數(shù)據(jù)庫(kù)" ' 'CreateTableBtn ' Me.CreateTableBtn.Location = New System.Drawing.Point(139, 9) Me.CreateTableBtn.Name = "CreateTableBtn" Me.CreateTableBtn.TabIndex = 1 Me.CreateTableBtn.Text = "創(chuàng)建表" ' 'CreateSPBtn ' Me.CreateSPBtn.Location = New System.Drawing.Point(230, 9) Me.CreateSPBtn.Name = "CreateSPBtn" Me.CreateSPBtn.Size = New System.Drawing.Size(104, 23) Me.CreateSPBtn.TabIndex = 2 Me.CreateSPBtn.Text = "創(chuàng)建存儲(chǔ)過(guò)程" ' 'CreateViewBtn ' Me.CreateViewBtn.Location = New System.Drawing.Point(350, 9) Me.CreateViewBtn.Name = "CreateViewBtn" Me.CreateViewBtn.TabIndex = 3 Me.CreateViewBtn.Text = "創(chuàng)建視圖" ' 'btnAlterTable ' Me.btnAlterTable.Location = New System.Drawing.Point(441, 9) Me.btnAlterTable.Name = "btnAlterTable" Me.btnAlterTable.TabIndex = 4 Me.btnAlterTable.Text = "修改表" ' 'btnCreateOthers ' Me.btnCreateOthers.Location = New System.Drawing.Point(17, 43) Me.btnCreateOthers.Name = "btnCreateOthers" Me.btnCreateOthers.Size = New System.Drawing.Size(104, 23) Me.btnCreateOthers.TabIndex = 5 Me.btnCreateOthers.Text = "創(chuàng)建規(guī)則和索引" ' 'btnDropTable ' Me.btnDropTable.Location = New System.Drawing.Point(138, 43) Me.btnDropTable.Name = "btnDropTable" Me.btnDropTable.TabIndex = 6 Me.btnDropTable.Text = "刪除表" ' 'btnViewData ' Me.btnViewData.Location = New System.Drawing.Point(351, 43) Me.btnViewData.Name = "btnViewData" Me.btnViewData.TabIndex = 7 Me.btnViewData.Text = "查看數(shù)據(jù)" ' 'btnViewSP ' Me.btnViewSP.Location = New System.Drawing.Point(230, 43) Me.btnViewSP.Name = "btnViewSP" Me.btnViewSP.Size = New System.Drawing.Size(104, 23) Me.btnViewSP.TabIndex = 8 Me.btnViewSP.Text = "查看存儲(chǔ)過(guò)程" ' 'btnViewView ' Me.btnViewView.Location = New System.Drawing.Point(443, 43) Me.btnViewView.Name = "btnViewView" Me.btnViewView.TabIndex = 9 Me.btnViewView.Text = "查看視圖" ' 'DataGrid1 ' Me.DataGrid1.DataMember = "" Me.DataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText Me.DataGrid1.Location = New System.Drawing.Point(20, 76) Me.DataGrid1.Name = "DataGrid1" Me.DataGrid1.Size = New System.Drawing.Size(500, 183) Me.DataGrid1.TabIndex = 10 ' 'Form1 ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(538, 281) Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.DataGrid1, Me.btnViewView, _ Me.btnViewSP, Me.btnViewData, Me.btnDropTable, Me.btnCreateOthers,
Me.btnAlterTable, _ Me.CreateViewBtn, Me.CreateSPBtn, Me.CreateTableBtn, Me.CreateDBBtn}) Me.Name = "Form1" Me.Text = "動(dòng)態(tài)創(chuàng)建SQL Server數(shù)據(jù)庫(kù)、表、存儲(chǔ)過(guò)程等架構(gòu)信息" CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False)
End Sub
#End Region
' 創(chuàng)建數(shù)據(jù)庫(kù) Private Sub CreateDBBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles CreateDBBtn.Click conn = New SqlConnection(ConnectionString) ' 打開連接 If conn.State <> ConnectionState.Open Then conn.Open() End If 'MyDataBase為數(shù)據(jù)庫(kù)名稱 Dim sql As String = "CREATE DATABASE MyDataBase ON PRIMARY (Name=MyDataBase_data,
filename = " + _ "'D:MyDataBase.mdf', size=3," + "maxsize=5, filegrowth=10%) log on" +
"(name=MyDataBase_log, " + _ "filename='D:MyDataBase.ldf',size=3," + "maxsize=20,filegrowth=1)" cmd = New SqlCommand(sql, conn) Try cmd.ExecuteNonQuery() Catch ae As SqlException MessageBox.Show(ae.Message.ToString()) End Try End Sub '創(chuàng)建表 Private Sub CreateTableBtn_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) _ Handles CreateTableBtn.Click conn = New SqlConnection(ConnectionString) ' 打開連接 If conn.State = ConnectionState.Open Then conn.Close() End If ConnectionString = "Data Source=.;Initial Catalog=MyDataBase;User Id=sa;Password=;" conn.ConnectionString = ConnectionString conn.Open() sql = "CREATE TABLE myTable" + "(myId INTEGER CONSTRAINT PKeyMyId PRIMARY KEY," + _ "myName CHAR(50) NOT Null, myAddress CHAR(255), myValues FLOAT)" cmd = New SqlCommand(sql, conn) Try cmd.ExecuteNonQuery() ' 添加紀(jì)錄 sql = "INSERT INTO myTable(myId, myName, myAddress, myValues) " + _ "VALUES (1001, _'【孟憲會(huì)之精彩世界】之一', 'http://xml.sz.luohuedu.net/', 100 ) " cmd = New SqlCommand(sql, conn) cmd.ExecuteNonQuery() sql = "INSERT INTO myTable(myId, myName, myAddress, myValues) " + _ "VALUES (1002, '【孟憲會(huì)之精彩世界】之二', 'http://www.erp800.com/net_lover/', 99) " cmd = New SqlCommand(sql, conn) cmd.ExecuteNonQuery() sql = "INSERT INTO myTable(myId, myName, myAddress, myValues) " + _ "VALUES (1003, '【孟憲會(huì)之精彩世界】之三', 'http://xml.sz.luohuedu.net/', 99) " cmd = New SqlCommand(sql, conn) cmd.ExecuteNonQuery() sql = "INSERT INTO myTable(myId, myName, myAddress, myValues) " + _ "VALUES (1004, '【孟憲會(huì)之精彩世界】之四', 'http://www.erp800.com/net_lover/', 100) " cmd = New SqlCommand(sql, conn) cmd.ExecuteNonQuery() Catch ae As SqlException MessageBox.Show(ae.Message.ToString()) End Try
End Sub '創(chuàng)建存儲(chǔ)過(guò)程 Private Sub CreateSPBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles CreateSPBtn.Click sql = "CREATE PROCEDURE myProc AS" + " SELECT myName, myAddress FROM myTable GO" ExecuteSQLStmt(sql) End Sub '創(chuàng)建視圖 Private Sub CreateViewBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles CreateViewBtn.Click sql = "CREATE VIEW myView AS SELECT myName FROM myTable" ExecuteSQLStmt(sql)
End Sub '修改表 Private Sub btnAlterTable_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles btnAlterTable.Click sql = "ALTER TABLE MyTable ADD newCol datetime NOT NULL DEFAULT (getdate())" ExecuteSQLStmt(sql) End Sub '創(chuàng)建規(guī)則和索引 Private Sub btnCreateOthers_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) _ Handles btnCreateOthers.Click sql = "CREATE UNIQUE INDEX " + "myIdx ON myTable(myName)" ExecuteSQLStmt(sql)
sql = "CREATE RULE myRule " + "AS @myValues >= 90 AND @myValues < 9999" ExecuteSQLStmt(sql) End Sub
'刪除表 Private Sub btnDropTable_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) _ Handles btnDropTable.Click Dim sql As String = "DROP TABLE MyTable" ExecuteSQLStmt(sql) End Sub '瀏覽表數(shù)據(jù) Private Sub btnViewData_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) _ Handles btnViewData.Click conn = New SqlConnection(ConnectionString) If conn.State = ConnectionState.Open Then conn.Close() End If ConnectionString = "Data Source=.;Initial Catalog=MyDataBase;User Id=sa;Password=;" conn.ConnectionString = ConnectionString conn.Open() Dim da As New SqlDataAdapter("SELECT * FROM myTable", conn) Dim ds As New DataSet("myTable") da.Fill(ds, "myTable") DataGrid1.DataSource = ds.Tables("myTable").DefaultView End Sub '瀏覽存儲(chǔ)過(guò)程 Private Sub btnViewSP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles btnViewSP.Click conn = New SqlConnection(ConnectionString) If conn.State = ConnectionState.Open Then conn.Close() End If ConnectionString = "Data Source=.;Initial Catalog=MyDataBase;User Id=sa;Password=;" conn.ConnectionString = ConnectionString conn.Open() Dim da As New SqlDataAdapter("myProc", conn) Dim ds As New DataSet("SP") da.Fill(ds, "SP") DataGrid1.DataSource = ds.DefaultViewManager End Sub '瀏覽視圖 Private Sub btnViewView_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) _ Handles btnViewView.Click conn = New SqlConnection(ConnectionString) If conn.State = ConnectionState.Open Then conn.Close() End If ConnectionString = "Data Source=.;Initial Catalog=MyDataBase;User Id=sa;Password=;" conn.ConnectionString = ConnectionString conn.Open() Dim da As New SqlDataAdapter("SELECT * FROM myView", conn) Dim ds As New DataSet() da.Fill(ds) DataGrid1.DataSource = ds.DefaultViewManager End Sub
Private Sub ExecuteSQLStmt(ByVal sql As String) conn = New SqlConnection(ConnectionString) ' 打開連接 If conn.State = ConnectionState.Open Then conn.Close() End If ConnectionString = "Data Source=.;Initial Catalog=MyDataBase;User Id=sa;Password=;" conn.ConnectionString = ConnectionString conn.Open() cmd = New SqlCommand(sql, conn) Try cmd.ExecuteNonQuery() Catch ae As SqlException MessageBox.Show(ae.Message.ToString()) End Try End Sub End Class
相關(guān)文章:
1. 案例討論:批量刪除Oracle數(shù)據(jù)庫(kù)的數(shù)據(jù)2. SQLite數(shù)據(jù)庫(kù)常用語(yǔ)句及MAC上的SQLite可視化工具M(jìn)easSQLlite使用方法3. 淺談一下MyISAM和InnoDB存儲(chǔ)引擎的區(qū)別4. MySQL插入數(shù)據(jù)時(shí),如果記錄不存在則insert,如果存在則update5. ACCESS轉(zhuǎn)SQL數(shù)據(jù)庫(kù)相關(guān)的幾個(gè)技能6. MySQL存儲(chǔ)引擎選擇InnoDB還是MyISAM7. 數(shù)據(jù)庫(kù)相關(guān)的幾個(gè)技能:ACCESS轉(zhuǎn)SQL8. 什么是Access數(shù)據(jù)庫(kù)9. 如何實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的備份與恢復(fù)10. 巧用SQL語(yǔ)言在ACCESS數(shù)據(jù)庫(kù)中批量替換內(nèi)容
