BebeSaiyan Ответов: 4

Как создать новую базу данных в ASP.NET?


Моя цель-создать новую базу данных для новых брендов, которые пользователь добавит на сайт. Я создал код для выполнения такой задачи, но он дает мне это исключение: Исключение типа "System. Data.SqlClient. SqlException" произошло в System.Data.dll но не была обработана в пользовательском коде дополнительная информация: неправильный синтаксис рядом с 'char'.

Я уже несколько раз просматривал код, но до сих пор не могу найти первопричину проблемы.

Что я уже пробовал:

public static void CreateGuitarBrandsDatabase(string brand)
{
    SqlConnection createBrandData = new SqlConnection(@"Data Source=Y560\SQLEXPRESS;Initial Catalog=GuitarItemsDB;Integrated Security=True");
    createBrandData.Open();
    SqlCommand cmdBrandData = new SqlCommand("CREATE TABLE guitarItem" + brand + "(id int,type char(50),model char(50),price float,image1 char(255),image2 char(255),description text,neck type char(100),body char(100), fretboard char(100),fret char(50),bridge char(100),neck pickup char(100),bridge pickup char(100),hardware_color char(50));", createBrandData);
    cmdBrandData.ExecuteNonQuery();//The exception seems to be pointing right here
    createBrandData.Close();
}

lw@zi

Работает ли ваш запрос в SSMS?

4 Ответов

Рейтинг:
2

Member 13006470

neck type должно быть [neck type] или necktype


Karthik_Mahalingam

5

Рейтинг:
2

Peter Leow

Это очень просто, "нет места в идентификаторе", будь то имя переменной, имя объекта, имя функции, имя класса, имя таблицы или имя поля. Вы можете выйти сухим из воды, заключив такой идентификатор с обратной галочкой в MySQL или [] в SQL Server, но какого черта. Просто не включайте пробел.
Если имя состоит из нескольких слов, используйте подчеркивание, чтобы разделить их. Верблюжий случай - Википедия[^].


Рейтинг:
1

Garth J Lancaster

в качестве расширения к "решению 1" у вас также есть

"пикап шеи"
"мост пикап"

которые не должны иметь пространства между ними


Рейтинг:
1

Bryian Tan

Предположим, вы хотите сохранить пробел в имени столбца.

тип шеи должен быть [тип шеи]
шейный пикап должен быть [шейный пикап]
мост пикап должен быть [мост пикап]

Я также предлагаю добавить скобку к описанию = [описание] (не проблема)

Кроме того, пожалуйста, взгляните на эту статью SQL-инъекция и межсайтовые Скрипты[^] когда у тебя будет время.