Stis-mag
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 47
|
|
1 | |
Добавление данных в базу через TextBox17.02.2012, 11:41. Просмотров 12596. Ответов 18
Метки нет Все метки)
(
Здравствуйте. Решил поупражняться с Ado.NET. Возник вопрос. Как добавлять через TextBox?
Я понял что нужно добавлять следующим образом: адресаTableAdapter.Insert("тут счетчик","тут адрес"); Счетчик должен сам заполняться? Или как мне добавлять если я не знаю значение счетчика?
0
|
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
|
17.02.2012, 11:41 |
Ответы с готовыми решениями:
18
Кнопка добавление в базу данных из ComboBox и TextBox Создание БД и добавление данных через TextBox Добавление в базу Sql через C# Добавление данных видео, открытого из формы, в базу данных Из textbox в базу данных Access |
Learx
1046 / 853 / 194
Регистрация: 31.03.2010
Сообщений: 2,490
|
|||||||||||
17.02.2012, 18:25 | 2 | ||||||||||
Можно создать столбец автоинкрементный в базе данных и тогда можно обычным Command'ером вставлять строки в таблицу а-ля:
Или можно запросом (Select max(IndexColum) from TableName) и ExecuteScalar получить максимальное значение для твоего счетчика из БД, ручками увелисчить и соотвественно переделать приведенный в примере запросик.
1
|
Stis-mag
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 47
|
||||||
17.02.2012, 19:20 [ТС] | 3 | |||||
0
|
_katon_
384 / 240 / 20
Регистрация: 03.10.2011
Сообщений: 992
|
|||||||||||
20.02.2012, 22:30 | 4 | ||||||||||
А что за СУБД. И у тебя вроде ошибка в запросе. Судя по запросу у тебя в таблице только одно поле. Кроме этого текстовые данные надо брать в одинарные ковычки.
Если СУБД MS SQL То:
0
|
Stis-mag
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 47
|
|
21.02.2012, 10:11 [ТС] | 5 |
База access. В таблице 2 поля. Первое счетчик, второе текстовое.
Меня интересует вопрос как вставить строку в таблицу с автоматической вставкой поля счетчик.
0
|
_katon_
384 / 240 / 20
Регистрация: 03.10.2011
Сообщений: 992
|
||||||
21.02.2012, 10:57 | 6 | |||||
К сожалению никогда не работал с "ахсекс", но если в БД для ключевого поля установить автоэнкримент, то про него можно будет "забыть". Т.е. я полностью согласен с Learx!
Посмотрел синтаксис инструкции для твоей СУБД. Выглядит сл. образом:
Так в чем проблема? Нужно: 1. Для ключевого поля в таблице установить автоэнкримент (при добавлении записи каждый раз СУБД сама будет подставлять новое значение) 2. Написать правильно запрос на вставку данных (в изначальной версии запроса ошибка); Это все что необходимо для вставки. Попробуй, если что-то не получится, то пиши. Еще было бы неплохо попробовать выполнить запрос в редакторе для написания запросов твоей СУБД. Это поможет более точно определить ошибку. В MS это Menegment Studio.
0
|
Stis-mag
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 47
|
||||||||||||||||
21.02.2012, 20:26 [ТС] | 7 | |||||||||||||||
автоэнкримент включен, но все равно требует его ввод.
Вот так происходит добавление у меня в базе:
![]()
0
|
_katon_
384 / 240 / 20
Регистрация: 03.10.2011
Сообщений: 992
|
|
22.02.2012, 01:32 | 8 |
Такое содержание ошибки:
Вообще странно как-то получается. Смотри если у тебя таблица 'Адреса', то судя по тому что я понял просматривая записи у тебя должны быть следующие поля: 1. idАдреса (ключевое поле для которого нужно установить автоэнкремент) 2. idРаботника (вторичный ключ на таблицу работников и если оно не может принимать значение NULL, то результат выполнения запроса выдаст указанную тобой ошибку) 3. Адрес (Текстовое поле в которое пользователь) Судя по всему у тебя проблемы со структурой данных, а ошибка в запросе это всего лишь последствие))). Вторая ошибка у тебя возникает потому что если не указать перечень полей для вставки, то тогда тебе необходимо в скобках после ключевого слова VALUES перечилсить ВСЕ поля в той последовательности в которой они указаны в таблице. В общем содержание об ошибке об этом и говорит)) Я практически уверен, что как ты и говорил у тебя два поля, только поле работник у тебя не ключевое))) Думаю если ты внимательно просмотришь таблицу с четким пониманием того что есть первичный ключ, а что есть вторичный, то проблема решится.
0
|
Stis-mag
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 47
|
|
22.02.2012, 18:46 [ТС] | 9 |
Все в принципе решено. Чет не посмотрел толком что у меня там было. Аж позор мне (((
0
|
SpiritAT
3 / 3 / 0
Регистрация: 02.09.2011
Сообщений: 107
|
||||||
05.03.2012, 15:15 | 10 | |||||
_katon_, я смотрю ты рулешь в базах )) а несложно помочь мне?
0
|
_katon_
384 / 240 / 20
Регистрация: 03.10.2011
Сообщений: 992
|
||||||
05.03.2012, 15:34 | 11 | |||||
С FoxPro дело не имел... запрос у тебя скорее всего написан не правильно. Вот тебе на всякий случай шаблон:
1
|
SpiritAT
3 / 3 / 0
Регистрация: 02.09.2011
Сообщений: 107
|
|
05.03.2012, 15:37 | 12 |
0
|
_katon_
384 / 240 / 20
Регистрация: 03.10.2011
Сообщений: 992
|
|
05.03.2012, 15:38 | 13 |
0
|
SpiritAT
3 / 3 / 0
Регистрация: 02.09.2011
Сообщений: 107
|
|
05.03.2012, 15:48 | 14 |
Table стоит потому что FoxPro требует показать куда имена вставка идет, типа в таблицу имя её ID даже замена имени таблице роль не сыграет если что(((((
0
|
_katon_
384 / 240 / 20
Регистрация: 03.10.2011
Сообщений: 992
|
|
05.03.2012, 17:40 | 15 |
Первый раз сегодня встречаюсь с FoxPro как диалектом SQL! Посему, чтобы не "пудрить" тебе мозг скажу, что качественного ответа от меня ты не получишь.
Но исходя из моего опыта работы с различными СУБД такие инструкции как SELECT/INSERT/UPDATE практически не отличаются на разных СУБД (голословно потому, что ограничено моими познаниями). Я все равно склоняюсь к той версии, что запрос написан неправильно и ключевому полю TABLE там делать нечего (опять же голословно - могу и ошибаться). В пользу моей версии также говорит тот факт, что ID в общем случае это название ключевого поля но никак не таблицы... Кроме того я просмотрел около полу десятка ссылок на "INSERT INTO" в контексте FoxPro и нигде не встретил указанного тобой способа добавления записи в таблицу. Кстати, на мой взгляд запись в реляционных БД может вставляться только в Таблицу и никуда более, а это еще лишний раз убеждает меня что ключевое слово Table, указывающее что вставка должна происходить именно в это поле - это не очень хорошая идея исходя из банальной логики. Возможно ты просто сделал ошибочные выводы когда читал текст ошибки. Вот такие мои рассуждения! Поскольку с FoxPro я практически никогда не сталкивался, то советую тебе обратится к человеку, который действительно понимает, что и как надо писать на этом диалекте.
1
|
SpiritAT
3 / 3 / 0
Регистрация: 02.09.2011
Сообщений: 107
|
|
05.03.2012, 21:55 | 16 |
0
|
_katon_
384 / 240 / 20
Регистрация: 03.10.2011
Сообщений: 992
|
|
05.03.2012, 22:06 | 17 |
Читал ссылки по поисковому запросу. По правилам форума я тебе не должен отправлять к поисковым системам, но тут ты сам просишь. Набери в гугле "FoxPro INSERT INTO", "FoxPro запрос на вставку" и читай.
0
|
Stis-mag
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 47
|
|
09.03.2012, 16:01 [ТС] | 18 |
Возник вопрос как добавлять через ричтекстбокс.
Например таблица следующего вида скрин 1 В ричтекстбоксе делаю следующие скрин 2 Как получить айдишник модели 321? Таким способом comboBox1.SelectedIndex будет 2, а надо 6
0
|
nio
|
|
09.03.2012, 16:24 | 19 |
Stis-mag, сначала обрати внимание на свойство, которое выделено на втором скрине, а потом используй comboBox1.SelectedValue вместо comboBox1.SelectedIndex
1
|
09.03.2012, 16:24 | |
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
|
09.03.2012, 16:24 |
Добавление записей в БД через textbox Добавление данных в базу Добавление данных в базу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |