Динамическое создание таблицы SQL не создает таблицу в SQL Server - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть объект (Results_DataColumn), который содержит имена столбцов для каждого опроса на сервере поставщика данных.Теперь мне нужно создать таблицу с этой информацией столбца, поэтому, если объект Results_DataColumn содержит (1)Name and (2)City, я хочу создать таблицу на моем собственном сервере Sql с Columns 1 ID, 2 Name, 3 City.Код, который я написал:

Public Class TableCreator
    Public Shared Sub CreateTable(ByRef myColumnInformation As Results_DataColumn, ByVal tableName As String)

        Dim conStr As String = "Server=NB01035;Database=DB_Import;Trusted_Connection=true"

        Using con As SqlConnection = New SqlConnection(conStr)
            Using sqlCom As New SqlCommand
                With sqlCom
                    .Connection = con
                    .CommandType = CommandType.Text
                    .CommandText = queryBuilder(myColumnInformation, tableName)
                End With
                Try
                    con.Open()
                    sqlCom.ExecuteNonQuery()
                Catch ex As SqlException
                    Console.WriteLine(ex.Message.ToString(), "Error Message")
                End Try
            End Using
        End Using
    End Sub

    Public Shared Function queryBuilder(ByRef myColumnInformation As Results_DataColumn, ByVal tableName As String) As String
        Dim query As StringBuilder = New StringBuilder
        query.Append("IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = [")
        query.Append(tableName)
        query.Append("] DROP [")
        query.Append(tableName)
        query.Append("] BEGIN CREATE TABLE [")
        query.Append(tableName)
        query.Append("] ( ID int identity(1,1) not null, ")

        For i As Integer = 0 To myColumnInformation.results.Count - 1
            query.Append(myColumnInformation.results(i).questionCode.ToString)
            query.Append(" VARCHAR(MAX)")
            query.Append(", ")
        Next

        If myColumnInformation.results.Count > 1 Then
            query.Length -= 2
        End If
        Console.WriteLine(query.ToString)

        query.Append(")")
        Console.WriteLine(query.ToString)
        Return query.ToString
    End Function
End Class

Он работает, но не создает таблицу на сервере, и я просто не знаю, почему.Созданный SQL-запрос выглядит нормально.Кто-нибудь, кто может мне помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...