我想要做的是首先檢查表中是否已經存在某個列,如果不添加它。我想通過視覺基礎來實現這一點。如果有人花了一點時間來評論和簡要解釋每一步,我將不勝感激。通過VB添加SQL列的最簡單方法
回答
有兩種方法來確定一個列上存在:要麼嘗試使用它,並捕獲的錯誤,如果它不存在,或從數據庫中讀取的元數據看SQL Server: Extract Table Meta-Data (description, fields and their data types)
一旦你知道你需要要添加使用ALTER TABLE命令的列以將該列添加到表中。
在VB中,您還可以打開一個空的記錄集並遍歷列集合。但是你當然可以編寫一個存儲過程來完成Peter Wooster的所有建議。請注意,從應用程序代碼中更改數據庫表通常不被視爲一種好的設計模式。 – 2013-02-20 02:48:11
我已經知道,但教授不是那麼聰明:( – morgred 2013-02-20 02:50:37
這裏如果不 vb.net腳本來檢查如果柱存在,,創建它..
「」「摘要 ‘’」檢查,看是否有表中存在數據庫與否。 '' ' ''' 表名檢查 '' '連接字符串來連接到 ''' 與Access工作或SQL '' '
Public Function DoesTableExist(ByVal tblName As String, ByVal cnnStr As String) As Boolean
' For Access Connection String,
' use "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
' accessFilePathAndName
' Open connection to the database
Dim dbConn As New OleDbConnection(cnnStr)
dbConn.Open()
' Specify restriction to get table definition schema
' For reference on GetSchema see:
' http://msdn2.microsoft.com/en-us/library/ms254934(VS.80).aspx
Dim restrictions(3) As String
restrictions(2) = tblName
Dim dbTbl As DataTable = dbConn.GetSchema("Tables", restrictions)
If dbTbl.Rows.Count = 0 Then
'Table does not exist
DoesTableExist = False
Else
'Table exists
DoesTableExist = True
End If
dbTbl.Dispose()
dbConn.Close()
dbConn.Dispose()
端功能
' '' '''檢查表中是否存在字段。 「」「 ‘’」表名 ‘’檢查「字段名稱檢查 ‘’」連接字符串來連接到 ‘’「 ‘’」
公共功能DoesFieldExist(BYVAL tblName作爲串,_ BYVAL fldName作爲字符串_ BYVAL cnnStr作爲字符串)爲布爾 '對於Access連接字符串, ' 使用 「提供者= Microsoft.Jet.OLEDB.4.0;數據源=」 & 'accessFilePathAndName
' Open connection to the database
Dim dbConn As New OleDbConnection(cnnStr)
dbConn.Open()
Dim dbTbl As New DataTable
' Get the table definition loaded in a table adapter
Dim strSql As String = "Select TOP 1 * from " & tblName
Dim dbAdapater As New OleDbDataAdapter(strSql, dbConn)
dbAdapater.Fill(dbTbl)
' Get the index of the field name
Dim i As Integer = dbTbl.Columns.IndexOf(fldName)
If i = -1 Then
'Field is missing
DoesFieldExist = False
Else
'Field is there
DoesFieldExist = True
End If
dbTbl.Dispose()
dbConn.Close()
dbConn.Dispose()
端功能
Dim connString As String = "Data Source=NameOfMachine\InstanceofSQLServer;Initial Catalog=NameOfDataBase;Integrated Security=True"
Dim MyCol As String = "NameOfColumn"
Dim MyTable As String = "[NameOfTable]" ' or "[Name Of Table]" use brackets if table name contains spaces or other illegal Characters
Dim MySql As String = "IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS" & vbCrLf &
"WHERE TABLE_NAME = '" & MyTable & "' AND COLUMN_NAME = '" & MyCol & "')" & vbCrLf &
"BEGIN" & vbCrLf &
"ALTER TABLE [dbo]." & MyTable & " ADD" & vbCrLf & "[" & MyCol & "] INT NULL ;" & vbCrLf & "END"
Try
' MsgBox(MySql)- this msg box shows the Query so I can check for errors- Not required for code.
Dim dbConn = New SqlConnection(connString)' Note ConnString must be declared in the form class or within this Sub. Connstring is your connection string
Dim dbCmd = New SqlCommand(MySql, dbConn)
dbConn.Open()
dbCmd.ExecuteNonQuery()
'MessageBox.Show("Ready To Load Addendums")
dbConn.Close()
Catch ex As Exception
MsgBox("We've encountered an error;" & vbCrLf & ex.Message)
End Try
對不起,「MessageBox.show(」準備加載Addendums「)行也不是必需的。 – 2017-02-27 13:25:18
- 1. 將數據追加到SQL列的最簡單方法
- 2. 最簡單的方法添加動態列表(int)項目C#
- 3. 什麼是通過javascript向html添加元素的最簡單方法
- 4. 最簡單的方式通過XSL
- 5. 添加兩列的簡單SQL測試
- 6. 在CMake中加入列表的最佳/最簡單的方法
- 7. SQL最簡單的方法來過濾出相同的行?
- 8. 最簡單的方法陣列
- 9. 最簡單的方法來總計列?
- 10. 加載android webview的最簡單方法
- 11. 通過PHP發送複選框的最簡單的方法
- 12. 通過Web服務公開COM +的最簡單的方法
- 13. 通過我的瀏覽器獲取URL的最簡單方法?
- 14. 簡單地通過添加一個#include
- 15. 將最簡單的方法添加到Bootstrap的模態?
- 16. 簡單列添加
- 17. 通過JavaScript提交數據的最簡單方法是什麼?
- 18. 通過JNI將float [] []傳遞給C++的最簡單方法
- 19. 簡單的最小化,但通過方法
- 20. 通過ActiveResource使用OAuth最簡單的方法是什麼?
- 21. 通過PayPal確認付款的最簡單方法是什麼?
- 22. PHP最簡單的tomfoolery。測試不通過工作方法
- 23. 最簡單的方法來迭代通過集合在貓鼬
- 24. 通過互聯網傳輸數據最簡單的方法,Python
- 25. 最簡單的方法來添加/刪除模型關係
- 26. 最簡單的方法添加HTML到一個陣營組件
- 27. 添加更多社交圖標的最簡單方法?
- 28. 將DOCTYPE添加到Scala XML的最簡單方法是什麼?
- 29. 將最簡單的方法添加到ABRecordRef(person)
- 30. 將參數添加到條件查詢的最簡單方法
你知道SQL?如果是這樣的話,您可以使用ADO.NET將SQL語句硬編碼到您的VB.Net代碼 – 2013-02-20 02:21:00
實際上,ado.net正是我必須使用的。請告訴 – morgred 2013-02-20 02:22:41
您是否試圖編寫任何代碼? – 2013-02-20 02:24:18