Как сравнить имя таблицы базы данных с текстовым полем? - PullRequest
0 голосов
/ 18 февраля 2020

Я создал кнопку создания таблицы в Visual Studio с C#. Но у меня проблема с созданием табличной функции. Если я использую то же имя таблицы при создании таблицы, я получаю сообщение об ошибке. Как я могу сравнить свое текстовое поле с именами таблиц базы данных?

if(txtbox_loladı.Text=)
        {
            con.Open();
            SqlCommand Cmd = new SqlCommand();
            string Sql = "CREATE TABLE " + txtbox_loladı.Text + " (No nvarchar(50), [Name Surname] nvarchar(50), PRIMARY KEY (No))";
            Cmd = new SqlCommand(Sql, con);
            SqlDataReader SQLDR = Cmd.ExecuteReader();
            MessageBox.Show("Table Has Been Created!");
        }
        else
        {
            MessageBox.Show("You Need Change Table Name");
        }

1 Ответ

1 голос
/ 18 февраля 2020

Не делай этого. Вместо этого используйте команду create table if not exists

Редактировать:

это поможет : пример:

IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='tbl_name' and xtype='U')
    CREATE TABLE tbl_name (
        Name varchar(64) not null
    )
GO

с вашим кодом:

string Sql = "IF NOT EXISTS SELECT * FROM sysobjects WHERE name='" + txtbox_loladı.Text + "' and xtype='U') "
Sql += "CREATE TABLE " + txtbox_loladı.Text + " (No nvarchar(50), [Name Surname] nvarchar(50), PRIMARY KEY (No))";
// I don't know whether you need "Go" as well

И вам следует использовать $" {...} ... {...}" вместо "..." + .. + "..."

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