我有一个名为tickerArray
的数组,其中包含五个自动收报机符号。对于tickerArray
中的每个股票代码,我需要在Microsoft Access数据库中创建一个表。我需要为每个表的各自的股票代码命名。我知道如何通过vb.net创建表,但是在命名每个表时遇到了麻烦。正如您在下面的代码中看到的那样,我尝试了类似For Each tickerValue in tickerArray
的内容,然后尝试使用tickerValue
分别命名每个表。但是下面的代码创建了第一个表并将其命名为“tickerValue”,然后当它创建第二个表时,它会抛出错误并指出数据库中已经有一个名为“tickerValue”的表。关于如何在每个股票代码后命名每个表的任何想法?提前谢谢!
Imports System.Data.OleDb
Public Class Form1
Public Shared tickerArray() As String = {"GOOG", "V", "AAPL", "BBBY", "AMZN"}
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For Each tickerValue In tickerArray
'connection string
Dim my_connection As String = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\database\customers.mdb"
'query string
Dim my_query As String = "CREATE TABLE tickerValue ( Customer_Number Counter)"
'create a connection
Dim my_dbConnection As New OleDbConnection(my_connection)
'create a command
Dim my_Command As New OleDbCommand(my_query, my_dbConnection)
'connection open
my_dbConnection.Open()
'command execute
my_Command.ExecuteNonQuery()
'close connection
my_dbConnection.Close()
Next
End Sub
答案 0 :(得分:1)
你应该听听每个告诉你这个坏主意的人。
但是您的问题是将变量名称插入SQL而不是变量中保存的值所导致的错误:
改变这个:
'query string
Dim my_query As String = "CREATE TABLE tickerValue ( Customer_Number Counter)"
对此:
'query string
Dim my_query As String = String.Format("CREATE TABLE [{0}] ( Customer_Number Counter)", tickerValue)