Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
yaroslavbr
0 / 0 / 0
Регистрация: 24.01.2016
Сообщений: 10
1

Изменённое создание таблицы

29.02.2016, 17:33. Просмотров 901. Ответов 6
Метки нет (Все метки)

Доброго времени суток дорогие форумчане! В связи с саморазвитием встал интерестный вопрос. Есть задача программа отображает месячный табель сотрудников, также в ней есть форма внести данные по сотруднику. Проблема в том что как я это вижу есть в моей бд главная таблица(табель) и дочерние имена которых состоят из табельного номера + даты. Со всеми остальными проблемами я разобрался единственное я не пойму как правильно собрать запрос на создание такой специфической таблицы. Как её вижу я:
C#
1
SqlCommand com = new SqlCommand("CREATE TABLE " + textBox1.Text + " (project_id int IDENTITY(29211,10) primary key, project_name varchar(50), project_status varchar(30), startdate varchar(50))");
Но у меня возникает другая проблема( При попытке создать таблицу с цифрами в названии в MS SQL руцями всё прекрасно выходит, но при попытке создать её через программу вызывает catch. И самое интересное если буквы с цифрами или чисто буквы пишу в бокс то таблица создаётся, а если чисто цифры балалайку. Помогите пожалуйста((((
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.02.2016, 17:33
Ответы с готовыми решениями:

Создание пустой таблицы со структурой таблицы-шаблона
В базе SQL Server Compact имеется таблица без записей - что-то вроде шаблона....

Создание таблицы в БД
Приветствую всех. Проблема в том что таблица в SQL базе категорически...

Создание вертикальной таблицы
Здравствуйте! Требуется сделать на форме вывод значений в виде вертикальной...

Создание таблицы MySQL
OdbcConnection conn = new OdbcConnection(cs); conn.Open(); ...

Создание таблицы в классе
Господа, добрый день, проблема такая, на одной из форм имеем следующий код, в...

6
ksk
613 / 481 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
29.02.2016, 18:35 2
yaroslavbr, полезным бывает строку запроса сначала создать в виде переменной типа string, а уже потом передавать её в SqlCommand. Тогда можно в блоке catch вывести в лог или под отладчиком посмотреть, что же там такое было. Кроме того, в исключении пишут, что не так. Это тоже можно вывести в лог или посмотреть под отладчиком.

А уже из лога или из-под отладчика взять подробности и показать вопрошаемым товарищам, дабы у них была возможность сказать что-то типа "имя таблицы не должно было начинаться с цифр", или "имя таблицы не должно было содержать апострофа, после которого написано xp_cmdshell 'format c:'".

Утрирую немного и упрощаю, но подход должен быть какой-то такой. Чуть больше самостоятельного поиска причин падения программы, и подробностей, чтобы на вопрос мог ответить не только экстрасенс.

И создание таблицы, имя которой указывает пользователь... как-то оно не вполне реляционно что ли.
1
yaroslavbr
0 / 0 / 0
Регистрация: 24.01.2016
Сообщений: 10
29.02.2016, 19:27  [ТС] 3
Цитата Сообщение от ksk Посмотреть сообщение
И создание таблицы, имя которой указывает пользователь... как-то оно не вполне реляционно что ли.
оно то так но понимаете прабл в чём как прога угадает для кого именно я внёс нынешние данные? для какого именно человека создавать таблицу. да и плюс в название прописывается дата вручную. Причина проста: допустим вы вносите путевые листы и вы работаете в отличии от водителей на 5-и дневке не будете же вы приходить и вносить в прогу их листы путевые?

А на тему всего остального большое спасибо буду смотреть и писать сюда об результатах. Просто не понятно почему в самом sql можнно создать таблицу с именем в виде цифр а прога так делать не хочет Оо.
0
Defazze
316 / 127 / 28
Регистрация: 18.09.2014
Сообщений: 167
29.02.2016, 19:35 4
Лучший ответ Сообщение было отмечено yaroslavbr как решение

Решение

Цитата Сообщение от yaroslavbr Посмотреть сообщение
оно то так но понимаете прабл в чём как прога угадает для кого именно я внёс нынешние данные? для какого именно человека создавать таблицу. да и плюс в название прописывается дата вручную. Причина проста: допустим вы вносите путевые листы и вы работаете в отличии от водителей на 5-и дневке не будете же вы приходить и вносить в прогу их листы путевые?
Если это у Вас практическая задача, а не учебная, то Вы очень, очень намучаетесь с такой хм... неординарной структурой.
Фиксируйте табельный номер и дату в отдельных столбцах дочерней таблицы.
1
yaroslavbr
0 / 0 / 0
Регистрация: 24.01.2016
Сообщений: 10
29.02.2016, 19:50  [ТС] 5
Такс... Получил такую вот интересную ошибочку. Additional information: Неправильный синтаксис около конструкции "123". Эти 123 это те цифры что я ввожу в текст бокс

Добавлено через 7 минут
Хм.... Это больше практика чем учёба ( Так как сделана по принципу иди туда не знаю куда сделай то не знаю что( но что бы обязательно выполнил( В общем вы говорите про то что бы сделать их фиксированными это хорошо, но сомневаюсь
0
Defazze
316 / 127 / 28
Регистрация: 18.09.2014
Сообщений: 167
29.02.2016, 21:37 6
Цитата Сообщение от yaroslavbr Посмотреть сообщение
Такс... Получил такую вот интересную ошибочку. Additional information: Неправильный синтаксис около конструкции "123". Эти 123 это те цифры что я ввожу в текст бокс
Приведите полный текст готового запроса.
1
yaroslavbr
0 / 0 / 0
Регистрация: 24.01.2016
Сообщений: 10
01.03.2016, 00:10  [ТС] 7
Вообще изначально он предполагался так:
C#
1
 SqlCommand cmdCreateTable = new SqlCommand("CREATE TABLE ""+dateTimePicker1.Value.ToString("d_m_yyyy")+"_"+textBox1.Text+""");
то есть по идеи називатся таблица должна была так дата_табельный номер избежать это увы никак( табельный номер фиксировано прописать ещё могу а вот с датой это дофига кода выходит( а что бы с пикера взял данные выкаблучивается(

Добавлено через 35 минут
УРЯ!!!!)))) Вопрос решился) Если вдруг кому то понадобиться такая же штука то вот код
C#
1
2
 string a = textBox1.Text;
 SqlCommand com = new SqlCommand("CREATE TABLE "+ a +"_"+ dateTimePicker1.Value.ToString("dd_MM_yyyy") +" (project_id int IDENTITY(29211,10) primary key, project_name varchar(50), project_status varchar(30), startdate varchar(50))");
Таблица бд будет подписана так: фраза из текст бокса(чисто цифры мы не хотим по этому я добавил в пропись буквенную преписку)_дата выбранная в дата тайм
0
01.03.2016, 00:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2016, 00:10

Создание таблицы символов
Здравствуйте, задача такова: надо сделать таблицу символов примерно как в...

Создание таблицы программно
Есть форма. На форме 2 TextBox. В первый вводится номер группы, во второй...

Запрос на создание таблицы
как создать запрос на создание таблицы....если кто может помогите


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru