Member 14122214 Ответов: 2

Как создать таблицу в mysql с помощью VB.NET с его именем, происходящим от textb


<pre>ate Sub Add_Tab()
        Dim createSql As String
        Try
            con = New MySqlConnection(myConnectionString)
            con.Open()


            createSql = "CREATE TABLE " & TextBox2.Text & "(CODE VARCHAR(25), PCID VARCHAR(25), Assigned_To TEXT, Deployed TEXT, PRIMARY KEY (CODE));"
            Dim cmd As New MySqlCommand(createSql, con)
            cmd.ExecuteNonQuery()
            cmd.Dispose()
        Catch ex As Exception
            MsgBox(ex.Message)
        Finally
            con.Close()
        End Try


Что я уже пробовал:

Вот мой код. всякий раз, когда я меняю
" & TextBox2.Text & "
для постоянного слова это работает, но когда я пытаюсь вытащить имя из текстового поля, оно выдает мне ошибку, которая говорит: У вас есть ошибка в синтаксисе sql. помогите пожалуйста

BobbyStrain

Попробуйте присвоить текст переменной, а затем использовать его в SQL.

2 Ответов

Рейтинг:
20

RickZeeland

Вы забыли пробел после имени таблицы, так что это должно быть:

createSql = "CREATE TABLE " & TextBox2.Text & " (CODE VARCHAR(25), PCID VARCHAR(25), Assigned_To TEXT, Deployed TEXT, PRIMARY KEY (CODE));"


Рейтинг:
2

Richard Deeming

Это будет зависеть от того, что вы ввели в текстовое поле, которое мы не видим. Вполне вероятно, что имя таблицы, которое вы ввели, недопустимо, и его нужно экранировать, окружив его обратными галочками.

createSql = "CREATE TABLE `" & TextBox2.Text & "` (CODE VARCHAR(25), PCID VARCHAR(25), Assigned_To TEXT, Deployed TEXT, PRIMARY KEY (CODE));"
Если он все еще не работает, вам нужно будет отладить код и изучить запрос, чтобы попытаться определить проблему.


Member 14122214

я использовал решение backtick, но появилась еще одна ошибка.

говорит "неправильное имя таблицы "" с двойным qoute

имя таблицы, которую я набирал, было случайным текстом, то есть "sampleme"

Richard Deeming

Убедитесь, что в конце имени нет пробелов:
MySQL :: MySQL 8.0 Справочное Руководство :: 9.2 Имена Объектов Схемы[^]

Member 14122214

до сих пор не работает, я уже использовал

 Dim cleanString As String = Regex.Replace(TextBox2.Text, "[^A-Za-z0-9\-/]", " ") 

чтобы очистить мою строку то же самое но все равно она имеет ту же ошибку :(

Member 14122214

во время отладки я обнаружил, что он возвращает значение 2 двойные кавычки ("") есть идеи, как это исправить?

Member 14122214

ти работал, когда я так выразился.:

createSql = "CREATE TABLE IF NOT EXISTS Mate(CODE VARCHAR(25), PCID VARCHAR(25), Assigned_To TEXT, Deployed TEXT, PRIMARY KEY (CODE))"

Member 14122214

решено, ребята, извините, я только что понял, что объявил текстовое поле как "" на событии щелчка