c# - 在mysql中通过c#在特定模式中创建表
问题描述
我正在尝试使用 C# 在 mySQL 中创建数据库和表。到目前为止,我可以通过 c# 在 mysql 中创建一个模式,但是在创建的模式中创建表时遇到了问题。
用户将输入要创建的模式的名称,然后输入将在之前输入的模式名称下创建的表名。模式名称和表名称采用文本框值。
我在表查询中遇到错误,该错误与语法有关。
myQuery1.AppendFormat("CREATE SCHEMA {0}", databasenametxt.Text);
myQuery2.AppendFormat("CREATE TABLE {0} (name VARCHAR(20)) WHERE
database={0}",tblenametxt.Text,databasenametxt.Text);
string s1 = myQuery1.ToString();
string s2 = myQuery2.ToString();
MySqlCommand cmd = new MySqlCommand(s1, coat);
MySqlCommand cmd1 = new MySqlCommand(s2, coat);
cmd.ExecuteNonQuery();
cmd1.ExecuteNonQuery();
myQuery1 已成功执行,并使用在 databasenametxt.Text 中输入的名称创建了一个模式,但在 myquery2 中出现错误。
解决方案
我理解它的方式是你想在其中动态创建一个模式和表。我不确定您得到的错误,但请尝试使用以下查询:
CREATE TABLE schema_name.table_name ( column_name1 data_type, column_name2 data_type, column_name3 data_type, .... )
为了替换schema_name
and table_name
,它应该像下面这样工作:
myQuery2.AppendFormat("CREATE TABLE {schema_name}.{table_name} ( {column_name1} {data_type}, .... ), your_schema_name, your_table_name, column_name1, data_type1);
您也可以只添加字符串:
myQuery2.AppendFormat("CREATE TABLE " + your_schema_name + "." + your_table_name + " ( " + column_name1 + " " + data_type1 + ")");
只是您正在创建一个查询字符串,它将在 sql server 上运行。
此外,您可以在https://dev.mysql.com/doc/refman/8.0/en/create-table.html获得用于创建表的所有 msql 语法
让我知道它是否有帮助!
推荐阅读
- tsql - 如何从去年关闭条件获得今年开放?
- asterisk - 在 FreePbx 上没有从 Asternet.Ari 获得任何事件
- c# - XSLT:删除具有空特定孙子的节点
- asp.net-mvc-5 - nUnit 测试控制器扩展方法
- c# - 与相关类共享一个类的实例
- python-3.x - 通过python使用excel中的selenium填充Webform
- powershell - 为每个带有子文件夹的文件夹运行 powershell 脚本
- jquery - 如何将三个不同的 Jquery Ui Datepickers 添加到单页
- python - Python 和 Web 抓取 - CSV 输出问题
- r - 有没有简单的方法在ggplot中设置垂直或水平线的限制?