動(dòng)態(tài)創(chuàng)建SQL Server數(shù)據(jù)庫表存儲(chǔ)過程
下面是利用SQL語句創(chuàng)建數(shù)據(jù)庫、表、存儲(chǔ)過程、視圖、索引、規(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ù)庫" ' '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ǔ)過程" ' '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ǔ)過程" ' '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ù)庫、表、存儲(chǔ)過程等架構(gòu)信息" CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False)
End Sub
#End Region
' 創(chuàng)建數(shù)據(jù)庫 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ù)庫名稱 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ǔ)過程 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ǔ)過程 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. SQL Server中的數(shù)據(jù)類型詳解2. sqlserver數(shù)據(jù)庫導(dǎo)入方法的詳細(xì)圖文教程3. 什么是Access數(shù)據(jù)庫4. Oracle數(shù)據(jù)庫中SQL語句性能調(diào)整原則5. 數(shù)據(jù)庫相關(guān)的幾個(gè)技能:ACCESS轉(zhuǎn)SQL6. 整理Oracle數(shù)據(jù)庫碎片7. ACCESS轉(zhuǎn)SQL數(shù)據(jù)庫相關(guān)的幾個(gè)技能8. MySql分組后隨機(jī)獲取每組一條數(shù)據(jù)的操作9. MYSQL數(shù)據(jù)庫存文本轉(zhuǎn)存數(shù)據(jù)庫問題10. Oracle數(shù)據(jù)庫中大型表查詢優(yōu)化研究
