0

tickerArray5 つのティッカー シンボルを含む名前の配列があります。ティッカー シンボルごとtickerArrayに、Microsoft Access データベースにテーブルを作成する必要があります。各テーブルにそれぞれのティッカー シンボルの名前を付ける必要があります。vb.net を使用してテーブルを作成する方法は知っていますが、各テーブルに名前を付けるときに問題が発生します。以下のコードでわかるように、次のようなことを試してから、各テーブルにそれぞれ名前For Each tickerValue in tickerArrayを付けようとします。tickerValueしかし、以下のコードは、最初のテーブルを作成して「tickerValue」という名前を付けます。次に、2 番目のテーブルを作成するときに、データベースに「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 に答える