0

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
4

1 回答 1

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)
于 2013-02-19T01:02:20.663 回答