Я делаю модуль опроса для моего программного обеспечения, в котором вы можете выбрать методы ввода в качестве HTML-элементов, которые будут отображаться в опросе.
Затем My Software берет эти элементы ввода и должен создать таблицу длякаждый опрос и name
-атрибут должны представлять собой имя столбца.
Я хочу использовать параметры, так как name
-атрибуты могли быть отредактированы на внешнем интерфейсе страницы создания опроса.Поэтому запрос "DELETE" или "DROP" не должен быть возможным.
Мое текущее состояние кода для создания:
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.
Кто-то знает, как изменить разделитель или вообщерешить эту проблему?