c# - 如何比较数据库表名和文本框?
问题描述
我用 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");
}
解决方案
不要那样做。改用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
你应该使用$" {...} ... {...}"
而不是"..." + .. + "..."
推荐阅读
- python - python bokeh动态更新分类x_range
- ruby - 重构 eval(some_variable).is_a?(Proc) 以不使用 eval
- python - MSU CSE 102 级计算器项目 3
- terminal - 如何使用终端为 macOS Catalina(版本 10.15.3)禁用我的相机?
- eclipse - 我在哪里可以下载 eclipse RSE(远程系统资源管理器)离线插件?
- node.js - npm start 与反应有关的问题
- mysql - UNION 不删除重复项
- python - Folium BoatMarker 更改图标大小
- mysql - Nodejs 无法连接到 WampServer MySQL 数据库
- javascript - 无限显示和隐藏跨度