Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/140: Рейтинг темы: голосов - 140, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 47
.NET 4.x

Добавление данных в базу через TextBox

17.02.2012, 11:41. Показов 28260. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Решил поупражняться с Ado.NET. Возник вопрос. Как добавлять через TextBox?
Я понял что нужно добавлять следующим образом: адресаTableAdapter.Insert("тут счетчик","тут адрес");
Счетчик должен сам заполняться? Или как мне добавлять если я не знаю значение счетчика?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.02.2012, 11:41
Ответы с готовыми решениями:

Кнопка добавление в базу данных из ComboBox и TextBox
private void button1_Click(object sender, EventArgs e) { con.Open(); OleDbCommand cmd =...

Создание БД и добавление данных через TextBox
Ребят, подскажите мне такую вещь: пишу приложение(Windows Forms), на нем размещена кнопка и пара TextBox. по нажатию на кнопку создается в...

Добавление в базу Sql через C#
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...

18
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
17.02.2012, 18:25
Можно создать столбец автоинкрементный в базе данных и тогда можно обычным Command'ером вставлять строки в таблицу а-ля:

C#
1
2
3
4
5
6
7
DbConnection con = new DbConnection(connectionString);
con.Open();
 
DbCommand com = new DbCommand();
com.Connection = con;
com.CommandText = string.Format("Insert Into Table_name Value({0})", TextBox.Text);
com.ExecuteNonQuery();
Или как рекомендует мсдн через параметры:

C#
1
2
3
4
5
6
7
8
DbConnection con = new DbConnection(connectionString);
con.Open();
 
DbCommand com = new DbCommand();
com.Connection = con;
com.CommandText = "Insert Into Table_name Value(@newData)";
com.Parameters.Add("newData", DbType.varchar).Value = TextBox.Text;
com.ExecuteNonQuery();
Значение для инкрементного столбца не надо ставить - его подставит сама БД.

Или можно запросом (Select max(IndexColum) from TableName) и ExecuteScalar получить максимальное значение для твоего счетчика из БД, ручками увелисчить и соотвественно переделать приведенный в примере запросик.
1
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 47
17.02.2012, 19:20  [ТС]
C#
1
com.CommandText = string.Format("Insert Into `Адреса` Value({0})", textBox1.Text);
Таким способом не получается.
0
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
20.02.2012, 22:30
А что за СУБД. И у тебя вроде ошибка в запросе. Судя по запросу у тебя в таблице только одно поле. Кроме этого текстовые данные надо брать в одинарные ковычки.
Если СУБД MS SQL То:

C#
1
com.CommandText = "Insert Into Твоя_таблица (поле_1) Values(\'" + textBox1.Text + "\')";
Вот тебе пример из msdn

T-SQL
1
2
INSERT INTO Cities (Location)
VALUES ( CONVERT(Point, '12.3:46.2') );
0
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 47
21.02.2012, 10:11  [ТС]
База access. В таблице 2 поля. Первое счетчик, второе текстовое.
Меня интересует вопрос как вставить строку в таблицу с автоматической вставкой поля счетчик.
0
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
21.02.2012, 10:57
К сожалению никогда не работал с "ахсекс", но если в БД для ключевого поля установить автоэнкримент, то про него можно будет "забыть". Т.е. я полностью согласен с Learx!

Посмотрел синтаксис инструкции для твоей СУБД. Выглядит сл. образом:

SQL
1
2
INSERT INTO конечный_объект [(поле1[, поле2[, ...]])]
VALUES (значение1[, значение2[, ...])
Единственная поправка к моему коду это то что в аксесе для выделения строквых данных используется не одинарные ковычки, а двойные.

Так в чем проблема?
Нужно:
1. Для ключевого поля в таблице установить автоэнкримент (при добавлении записи каждый раз СУБД сама будет подставлять новое значение)
2. Написать правильно запрос на вставку данных (в изначальной версии запроса ошибка);

Это все что необходимо для вставки. Попробуй, если что-то не получится, то пиши. Еще было бы неплохо попробовать выполнить запрос в редакторе для написания запросов твоей СУБД. Это поможет более точно определить ошибку. В MS это Menegment Studio.
0
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 47
21.02.2012, 20:26  [ТС]
автоэнкримент включен, но все равно требует его ввод.
Вот так происходит добавление у меня в базе:
SQL
1
2
INSERT INTO `Адреса` (`IdРработника`, `Адрес`) 
VALUES (?, ?)
Когда делаю так:
C#
1
2
3
4
OleDbCommand com = new OleDbCommand();
com.Connection = con;
сom.CommandText = string.Format("INSERT INTO `Адреса` (`Адрес`) VALUES ({0})", textBox1.Text);
com.ExecuteNonQuery();
Ошибка:
Невозможно добавление или изменение записи. Для обеспечения целостности данных необходимо наличие связанной записи в таблице 'Работники'.
Когда так:
C#
1
2
3
4
OleDbCommand com = new OleDbCommand();
com.Connection = con;
com.CommandText = string.Format("INSERT INTO `Адреса` VALUES ({0})", textBox1.Text);
com.ExecuteNonQuery();
Ошибка:
Не совпадает число значений запроса и число результирующих полей.
Я вообще уже не знаю как сделать
0
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
22.02.2012, 01:32
Такое содержание ошибки:
Невозможно добавление или изменение записи. Для обеспечения целостности данных необходимо наличие связанной записи в таблице 'Работники'.
говорит о том, что поле IdHаботник не первичный ключ а вторичный))

Вообще странно как-то получается. Смотри если у тебя таблица 'Адреса', то судя по тому что я понял просматривая записи у тебя должны быть следующие поля:
1. idАдреса (ключевое поле для которого нужно установить автоэнкремент)
2. idРаботника (вторичный ключ на таблицу работников и если оно не может принимать значение NULL, то результат выполнения запроса выдаст указанную тобой ошибку)
3. Адрес (Текстовое поле в которое пользователь)

Судя по всему у тебя проблемы со структурой данных, а ошибка в запросе это всего лишь последствие))).

Вторая ошибка у тебя возникает потому что если не указать перечень полей для вставки, то тогда тебе необходимо в скобках после ключевого слова VALUES перечилсить ВСЕ поля в той последовательности в которой они указаны в таблице.
В общем содержание об ошибке об этом и говорит))
Не совпадает число значений запроса и число результирующих полей.
кстати тебе так не надо, ведь цель это задействовать автоэнкремент для ключевого поля таблицы.
Я практически уверен, что как ты и говорил у тебя два поля, только поле работник у тебя не ключевое)))
Думаю если ты внимательно просмотришь таблицу с четким пониманием того что есть первичный ключ, а что есть вторичный, то проблема решится.
0
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 47
22.02.2012, 18:46  [ТС]
Все в принципе решено. Чет не посмотрел толком что у меня там было. Аж позор мне (((
0
 Аватар для SpiritAT
3 / 3 / 0
Регистрация: 02.09.2011
Сообщений: 107
05.03.2012, 15:15
_katon_, я смотрю ты рулешь в базах )) а несложно помочь мне?
C#
1
comand.CommandText = "INSERT INTO  TABLE id (nom_fil) VALUES (\'"+Feli.Text+"\')";
база FoxPro пишет ошибку
Миниатюры
Добавление данных в базу через TextBox  
0
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
05.03.2012, 15:34
С FoxPro дело не имел... запрос у тебя скорее всего написан не правильно. Вот тебе на всякий случай шаблон:
C#
1
string sqlString = "INSERT INTO Название_таблицы (Название_поля_в_таблице) VALUES (Значение_для вставки)";
У тебя вместо "Название_таблицы" - TABLE id (что-то не то!)
1
 Аватар для SpiritAT
3 / 3 / 0
Регистрация: 02.09.2011
Сообщений: 107
05.03.2012, 15:37
Цитата Сообщение от _katon_ Посмотреть сообщение
С FoxPro дело не имел... запрос у тебя скорее всего написан не правильно. Вот тебе на всякий случай шаблон:
C#
1
string sqlString = "INSERT INTO Название_таблицы (Название_поля_в_таблице) VALUES (Значение_для вставки)";
я по нему и делал ((( серовно не катит
0
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
05.03.2012, 15:38
Цитата Сообщение от _katon_ Посмотреть сообщение
У тебя вместо "Название_таблицы" - TABLE id (что-то не то!)
Посмотри еще раз!
0
 Аватар для SpiritAT
3 / 3 / 0
Регистрация: 02.09.2011
Сообщений: 107
05.03.2012, 15:48
Цитата Сообщение от _katon_ Посмотреть сообщение
Посмотри еще раз!
Table стоит потому что FoxPro требует показать куда имена вставка идет, типа в таблицу имя её ID даже замена имени таблице роль не сыграет если что(((((
0
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
05.03.2012, 17:40
Первый раз сегодня встречаюсь с 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
Цитата Сообщение от _katon_ Посмотреть сообщение
Первый раз сегодня встречаюсь с FoxPro как диалектом SQL! Посему, чтобы не "пудрить" тебе мозг скажу, что качественного ответа от меня ты не получишь.
Но исходя из моего опыта работы с различными СУБД такие инструкции как SELECT/INSERT/UPDATE практически не отличаются на разных СУБД (голословно потому, что ограничено моими познаниями). Я все равно склоняюсь к той версии, что запрос написан неправильно и ключевому полю TABLE там делать нечего (опять же голословно - могу и ошибаться).
В пользу моей версии также говорит тот факт, что ID в общем случае это название ключевого поля но никак не таблицы...
Кроме того я просмотрел около полу десятка ссылок на "INSERT INTO" в контексте FoxPro и нигде не встретил указанного тобой способа добавления записи в таблицу.
Кстати, на мой взгляд запись в реляционных БД может вставляться только в Таблицу и никуда более, а это еще лишний раз убеждает меня что ключевое слово Table, указывающее что вставка должна происходить именно в это поле - это не очень хорошая идея исходя из банальной логики.
Возможно ты просто сделал ошибочные выводы когда читал текст ошибки.
Вот такие мои рассуждения! Поскольку с FoxPro я практически никогда не сталкивался, то советую тебе обратится к человеку, который действительно понимает, что и как надо писать на этом диалекте.
А какую литру ты читал можешь дать и мне сылочку?
0
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
05.03.2012, 22:06
Читал ссылки по поисковому запросу. По правилам форума я тебе не должен отправлять к поисковым системам, но тут ты сам просишь. Набери в гугле "FoxPro INSERT INTO", "FoxPro запрос на вставку" и читай.
0
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 47
09.03.2012, 16:01  [ТС]
Возник вопрос как добавлять через ричтекстбокс.
Например таблица следующего вида скрин 1
В ричтекстбоксе делаю следующие скрин 2
Как получить айдишник модели 321?
Таким способом comboBox1.SelectedIndex будет 2, а надо 6
Миниатюры
Добавление данных в базу через TextBox   Добавление данных в базу через TextBox  
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
09.03.2012, 16:24
Stis-mag, сначала обрати внимание на свойство, которое выделено на втором скрине, а потом используй comboBox1.SelectedValue вместо comboBox1.SelectedIndex
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.03.2012, 16:24
Помогаю со студенческими работами здесь

Добавление данных видео, открытого из формы, в базу данных
Доброе время суток. Будьте добры подскажите, как сделать что бы в Visual Studio добавлялось видео, и его данные отображались в SQL. ...

Из textbox в базу данных Access
Есть форма, на ней расположены textbox'ы + кнопка "сохранить", нужно по нажатию на кнопку - создавать новую запись в таблице базы данных...

Добавление записей в БД через textbox
подскажите что не так, не добавляет запись в таблицу бд

Добавление данных в базу
Подскажите как передать значение из TextBox код нажатия кнопки- string sqldd = "INSERT INTO Discipline VALUES ('Название')"; ...

Добавление данных в базу
одскажите пожалуста, прочитал много тем, форумов по этому вопросу и про С# в целом, но почему то так и не доходит до меня как добавлять...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru