Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C# и SQL Server 2005, Проблема создания цикла для ID (DataSet) 
:(
    Опции темы
IlyaDipl
Дата 28.4.2008, 05:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 11.3.2008

Репутация: нет
Всего: нет



У меня есть автоматом созданный ДатаСэт (взятый из SQL)... при нажатии кнопки данные из текст-боксов должны записываться в поля... вопрос в том, что у меня не получается сделать цикл, чтобы в поле с ID автоматически вносились значения при создании новых строк... 

Код


        private void button1_Click(object sender, EventArgs e)
        {

            // Создаём переменную для хранения значения типа Int32
            Int32 id1 = 0;
            Int32.TryParse(textBox1.Text, out id1);

            // Создаём объект DataAdapter для таблицы Т1 - см. файлы bazaDataSet.xsd и bazaDataSet.Designer.cs 
            T1TableAdapter t1Adapt = new T1TableAdapter();
            
            // Вызываем метод, который сразу-же пытается выполнить 
            //подключение к БД, вставку записи в таблицу и отключение от БД

            try
            {
                t1Adapt.Insert(id1, textBox2.Text, textBox3.Text);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message,"Ошибка",MessageBoxButtons.OK,MessageBoxIcon.Error);
            }
        }



Я вставил код, где ID берётся из текстбокса... А мне нада, чтобы ID сам автоматически создавался при добавлении новой строки...
PM MAIL   Вверх
Wanderer2019
Дата 28.4.2008, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 937
Регистрация: 3.12.2004
Где: Санкт-Петербург/П рага

Репутация: 1
Всего: 17



Цитата(IlyaDipl @  28.4.2008,  05:13 Найти цитируемый пост)
Я вставил код, где ID берётся из текстбокса... А мне нада, чтобы ID сам автоматически создавался при добавлении новой строки... 

Нутк пользуйся возможностями БД типа автоинкремента, или напиши триггер на добавление, если ID у тебя сложный.
PM ICQ MSN   Вверх
IlyaDipl
Дата 28.4.2008, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 11.3.2008

Репутация: нет
Всего: нет



так я так и делал... но возникла тупиковая проблема: функция 
Код

t1Adapt.Insert(id1, textBox2.Text, textBox3.Text);
 записывается только так и никак иначе нельзя... т.е. сначала идёт ID, но я его инкрементом поставил... и не вставляю ни откуда... а он требует, чтобы я его вводил!!!! что делать вообще не знаю... пытался без ID просто вставлять - ругается, что функция INSERT написана неправильно... =(((( вот...  Если появятся каки-нить дельные предложения - буду рад и благодарен...
PM MAIL   Вверх
Wanderer2019
Дата 28.4.2008, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 937
Регистрация: 3.12.2004
Где: Санкт-Петербург/П рага

Репутация: 1
Всего: 17



я так понимаю ты все это дело в дизайнере делал. 
Соответственно для изменения набора параметров, выставленных туда дизайнером, разворачиваешь файл T1DataSet.xsd.
идешь в файл *.Designer.cs. Там ищешь функцию Insert - правишь ее, предварительно поправив набор параметров, которые туда закатал дизайнер в функции InitAdapter. 

Намного проще вызывать какой нить отдельный SqlCommand и вписать туда свой Insert. Или если у тебя очень сложный запрос будет, то напиши хранимую процедурку и вызывай ее.
PM ICQ MSN   Вверх
thomas
Дата 28.4.2008, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



IlyaDipl
Подставляй в TextBox для ID значение "-1". И будет тебе счастье.


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
FreakK
Дата 29.4.2008, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 1.7.2005
Где: Lviv (Ukraine)

Репутация: нет
Всего: нет



Цитата(IlyaDipl @ 28.4.2008,  12:04)
так я так и делал... но возникла тупиковая проблема: функция 
Код

t1Adapt.Insert(id1, textBox2.Text, textBox3.Text);
 записывается только так и никак иначе нельзя... т.е. сначала идёт ID, но я его инкрементом поставил... и не вставляю ни откуда... а он требует, чтобы я его вводил!!!! что делать вообще не знаю... пытался без ID просто вставлять - ругается, что функция INSERT написана неправильно... =(((( вот...  Если появятся каки-нить дельные предложения - буду рад и благодарен...

Перегенерируй датасет дизайнером после того, как установил автоинкремент, или просто руками иcправь InsertCommand 
тоесть : удали ID!


PM ICQ   Вверх
akizelokro
Дата 30.4.2008, 06:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: нет
Всего: 5



Код

t1Adapt.Insert(DBNull.Value, textBox2.Text, textBox3.Text);

Может, прокатит?

Это сообщение отредактировал(а) akizelokro - 30.4.2008, 07:28


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
IlyaDipl
Дата 7.5.2008, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 11.3.2008

Репутация: нет
Всего: нет



Всем большое спасибо за дельные советы... но, к сожалению пришлось делать через окружные пути... вроде как получилось...
PM MAIL   Вверх
Veitmen
Дата 8.5.2008, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 10.11.2006
Где: СПБ

Репутация: нет
Всего: 4



 smile Решение элементарное. Есть у тебя таблица. Ты хочешь в таблицу что то добавить. Делай так:
1. Создай саму таблицу.
2. Пошел цикл если данных много...
3. Если есть новый элемент создай DataRow.
4. Заполни DataRow.
5. Добавь DataRow  в таблицу.
6. Передай таблицу в адаптер и синхронизируй с бд.

Это сообщение отредактировал(а) Veitmen - 8.5.2008, 12:15
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0675 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.