使用参数和MySqlData创建表

时间:2019-02-24 14:59:18

标签: c# mysql parameters create-table

我正在为我的软件做一个调查模块,您可以在其中选择输入法作为要在调查中显示的HTML元素。

然后,“我的软件”将获取这些输入元素,并应为每个调查创建一个表,并且name-属性应为列名。

我想使用参数作为name-属性,可以在Survey-Creation页面的前端进行编辑。因此,不可能进行“删除”或“删除”查询。

我当前创建代码的状态是:

StringBuilder stringBuilder = new StringBuilder();
                stringBuilder.AppendLine(string.Format("CREATE TABLE {0}.{1} (", "surveys", string.Format("survey_{0}", SurveyObject.SurveyHash)));
                stringBuilder.AppendLine("id bigint(1) NOT NULL AUTO_INCREMENT,");

                for (int i = 0; i < namesAttributes.Count(); i++)
                {
                    string columnKey = string.Format("@Column{0}", i);
                    sqlParams.Add(columnKey, namesAttributes[i]);
                    stringBuilder.AppendLine(string.Format("{0} varchar(128) DEFAULT NULL,", columnKey));
                }

                stringBuilder.AppendLine("PRIMARY KEY(id),");
                stringBuilder.AppendLine("UNIQUE KEY `id_UNIQUE` (`id`)");
                stringBuilder.AppendLine(") ENGINE = InnoDB DEFAULT CHARSET = utf8;");
                string sqlQuery = stringBuilder.ToString().Replace("'", "`");
                isCitySurveySaved = sqlClass.Execute(sqlQuery, sqlParams) > 0;

但是出现以下错误:

MySql.Data.MySqlClient.MySqlException: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''TEXTAREA7jciyv3nokqj77b7ysc8qh' varchar(128) DEFAULT NULL, PRIMARY KEY(id), U' at line 3"

哪个说他不喜欢查询中的',但是这些是由MySqlData自动创建的。

有人知道如何更改分隔符或大致解决此问题吗?

0 个答案:

没有答案