首页 > 解决方案 > 如何比较数据库表名和文本框?

问题描述

我用 C# 在 Visual Studio 中制作了创建表格按钮。但我有问题创建表功能。如果我在创建表时使用相同的表名,则会出现错误。如何将我的文本框与数据库表名进行比较?

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");
        }

标签: c#visual-studio-2013sql-server-2008-r2

解决方案


不要那样做。改用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

你应该使用$" {...} ... {...}"而不是"..." + .. + "..."


推荐阅读