如何循环数组并在Microsoft Access数据库中创建表?

时间:2013-02-18 21:40:20

标签: arrays vb.net ms-access foreach

我有一个名为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

1 个答案:

答案 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)