Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / System error при insert / 6 сообщений из 6, страница 1 из 1
21.02.2006, 13:57
    #33558326
Неудачник1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System error при insert
При вставке новых строк в табличку получаю злостный exception "System Error" на предпоследней строчке
Где ошибка?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        Dim cmdInsVS As SqlCommand = New SqlCommand()
        cmdInsVS.CommandText = "Insert into VacancySkill (VacancyId,SkillId) values (@pVacancyId,@pSkillId)"
        cmdInsVS.Connection = cnObj.cn

For i =  0  To CType(lbSkills.DataSource, DataTable).Rows.Count -  1 
         cmdInsVS.Parameters.Add(New SqlParameter("@pVacancyId", SqlDbType.Int,  4 )).Value = id.ToString
         cmdInsVS.Parameters.Add(New SqlParameter("@pSkillId", SqlDbType.Int,  4 )).Value = CType(CType(lbSkills.DataSource, DataTable).Rows(i).Item("SkillId"), String)
         daSkillsVacancy.InsertCommand = cmdInsVS
         daSkillsVacancy.InsertCommand.ExecuteNonQuery()
next

...
Рейтинг: 0 / 0
21.02.2006, 14:25
    #33558420
ппп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System error при insert
Непонятно, что вставляется в параметры?
...
Рейтинг: 0 / 0
21.02.2006, 15:00
    #33558557
Неудачник1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System error при insert
Всавляются значения из другой таблицы. Значения я проверял - нормальные
Вот скрипт таблицы в которую производится вставка:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
CREATE TABLE VacancySkill] (
	VacancyId int NOT NULL ,
	SkillId int NOT NULL ,
	CONSTRAINT PK_VacancySkill PRIMARY KEY  CLUSTERED 
	(
		[VacancyId],
		[SkillId]
	)  ON PRIMARY )

И в цикле я эту табличку пытаюсь забить.
Проблема возникает на втором шаге цикла:
Код: plaintext
1.
2.
3.
4.
            cmdInsVS.Parameters.Add(New SqlParameter("@pVacancyId", SqlDbType.Int,  4 )).Value = id.ToString
            cmdInsVS.Parameters.Add(New SqlParameter("@pSkillId", SqlDbType.Int,  4 )).Value = CType(CType(lbSkills.DataSource, DataTable).Rows(i).Item("SkillId"), String)
            daSkillsVacancy.InsertCommand = cmdInsVS
            daSkillsVacancy.InsertCommand.ExecuteNonQuery()
...
Рейтинг: 0 / 0
21.02.2006, 15:07
    #33558578
Hratchia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System error при insert
На втором круге у команды уже есть параметры, а ты пытаешься их снова
впихнуть туда.

тебе надо до цикла создать параметры, а в цикле менять их значения


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
21.02.2006, 15:15
    #33558598
Hratchia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System error при insert
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Dim cmdInsVS As SqlCommand = New SqlCommand()
cmdInsVS.CommandText = "Insert into VacancySkill (VacancyId,SkillId) values (@pVacancyId,@pSkillId)"
cmdInsVS.Connection = cnObj.cn
cmdInsVS.Parameters.Add(New SqlParameter("@pVacancyId", SqlDbType.Int,  4 ))
cmdInsVS.Parameters.Add(New SqlParameter("@pSkillId", SqlDbType.Int,  4 ))

daSkillsVacancy.InsertCommand = cmdInsVS


For i =  0  To CType(lbSkills.DataSource, DataTable).Rows.Count -  1 
 cmdInsVS.Parameters.("@pVacancyId").Value =id.ToString
 cmdInsVS.Parameters.("@pSkillId").Value = CType(CType(lbSkills.DataSource, DataTable).Rows(i).Item("SkillId"), String)
daSkillsVacancy.InsertCommand.ExecuteNonQuery()
next 
 

...
Рейтинг: 0 / 0
21.02.2006, 15:20
    #33558613
Неудачник1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System error при insert
Похоже сам разобрался.
В цикле не надо было каждый раз добовлять парамсы, надо было перед циклом.
А внутри менять значения параметров. Тяжело дается это АДО .НЕТ.))

А еще вопрос. Вот никак не допрет до меня как лучше сделать.
Есть БД с несколькими связаными таблицами, причем есть отшение многие к многим. Одна главная таблица - все остальные справочники.
На гланой форме загружаю все в Датагрид из View созданной на MS SQL/
Теперь кликаю на одну запись для изменения. В форме редактирования для каждой таблицы создал dataAdapters, и все cгрузил в датасет.
С мемберми датасетов связал контролы. и в них делаю изменнеия.
Вопрос: Как теперь эти изменения зафиксировать в базе? Для каждой таблицаы писать инсерт апдейт делит. и потом executenonquery?
Но как то не красиво получается.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / System error при insert / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]