【问题标题】:How can i create a Table for MySql Database with C#如何使用 C# 为 MySql 数据库创建表
【发布时间】:2021-10-30 22:13:18
【问题描述】:

我的问题是如何使用用户输入的表名创建表?所以我已经知道了: string createtable = "CREATE TABLE '" + email.Text + "' (benutzung VARCHAR (20), passwort VARCHAR (30), id INTEGER);"; 但每次我启动程序并再次尝试时都会弹出此错误:

MySql.Data.MySqlClient.MySqlException:“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,了解在 ''test' 附近使用的正确语法(benutzung VARCHAR (20), passwort VARCHAR (30), id INTEGER)' 在第 1 行"

【问题讨论】:

  • 表名不能用单引号。
  • create a table with a table name what the user typed in? - 你确定这不是一个糟糕的主意,尤其是在安全方面? 为什么你想要这个,你想要达到什么目的?另外:您正在使用the wrong quotes
  • @AmitVerma 你能写出我该怎么做吗?
  • 动态创建表格,更糟糕的是,用户输入是一个糟糕的设计选择。无论您如何做,安全性和可扩展性问题都会浮现在脑海中。为什么需要专门这样做?通常我希望架构是固定的,用户操作只修改数据库上的数据。

标签: c# mysql visual-studio


【解决方案1】:

我从自己那里找到了解决方案,您要做的就是轻松做到这一点:

string createtable = "CREATE TABLE " + email.Text + " (benutzung VARCHAR (20), 
passwort VARCHAR (30), id INTEGER);";

现在一切正常:D

【讨论】:

  • 尝试使用字符串插值,如string createTable = $"CREATE TABLE {email.Text} (benutzung VARCHAR (20), passwort VARCHAR(30), id INTEGER);"。它将使字符串构造变得容易。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-11
  • 1970-01-01
  • 2014-12-31
  • 2019-12-21
  • 2015-09-01
  • 1970-01-01
相关资源
最近更新 更多