У меня есть объект (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-запрос выглядит нормально.Кто-нибудь, кто может мне помочь?