inahebel Ответов: 0

Повторяющиеся записи в таблице


Привет я использую этот код для ввода информации в базу данных
"AddAudit_Trail(идентификатор, "журнал обновлений" &амп; Journal_id &ампер; "Асс#" &амп; сделки intAccount_Nbr, "Гл ")"
вместо одной строки он иногда будет вводить более одной строки пожалуйста проверьте вложение
44093 6 2017-10-07 обновление журнала 0Acc# 28250 2:23:16 PM Gl транзакция
44094 6 2017-10-07 обновление журнала 0Acc# 28250 2:23:16 PM Gl транзакция
44095 6 2017-10-07 обновление журнала 0Acc# 28250 2:23:16 PM Gl транзакция
44096 6 2017-10-07 обновление журнала 0Acc# 28250 2:23:16 PM Gl транзакция
44097 6 2017-10-07 обновление журнала 0Acc# 28250 2:23:16 PM Gl транзакция
44098 6 2017-10-07 обновление журнала 0Acc# 28250 2:23:16 PM Gl транзакция
44099 6 2017-10-07 обновление журнала 0Acc# 28250 2:23:16 PM Gl транзакция
44100 6 2017-10-07 обновление журнала 0Acc# 28250 2:23:16 PM Gl транзакция
44101 6 2017-10-07 обновление журнала 0Acc# 28250 2:23:16 PM Gl транзакция
44102 6 2017-10-07 обновление журнала 0Acc# 28250 2:23:16 PM Gl транзакция
44103 6 2017-10-07 обновление журнала 0Acc# 28250 2:23:16 PM Gl транзакция
44104 6 2017-10-07 обновление журнала 0Acc# 28250 2:23:16 PM Gl транзакция

Что я уже пробовал:

я пытаюсь понять почему он вводит повторяющиеся строки в базу данных я использую хранимую процедуру для передачи данных из моего приложения в базу данных


Sub AddAudit_Trail(Var1 Как Объект, Var2 Как Объект, Var5 Как Объект)
strTime = TimeOfDay
VDate = Система.Дата-Время, Сейчас.ToShortDateString
add5Value("AddAuditTrail", Var1, VDate, Var2, strTime, Var5)
Конец Подводной Лодки
вот хранимая процедура

Создайте процедуру [dbo].[AddAuditTrail]
-- Добавьте параметры для хранимой процедуры здесь
@Var1 int,
@Var2 Дата ,
@Var3 Varchar(80),
@Var4 VarChar(50),
@Var5 NVarchar(20)
АС
НАЧАТЬ
-- Установить параметр nocount на добавленную предотвратить дополнительные результирующие наборы
-- вмешательство в операторы SELECT.
УСТАНОВИТЕ NOCOUNT ON;

-- Вставьте инструкции для процедуры здесь
Вставить в TBL_Audit_Trail
(UserID, Audit_Date, Action, Timex, Type)

Значения (@переменная var1,@var2 будет,@Var3,@Var4,@Var5)

КОНЕЦ
Суб add5Value(имя процедуры бывал в строку, как byval var1 следующим объект, как byval var2 будет как объект, Var3 бывал как объект, _
Бывал Var4 Как Объект, Бывал Var5 Как Объект)
Попробуй


Dim SqlCmd Как Новая Команда SqlCommand
Программа sqlcmd.CommandType = CommandType.Хранимая процедура
Программа sqlcmd.Свойства Commandtext = Имя Процедуры
Программа sqlcmd.Соединение = objConn

Dim sqlPrm как новый SqlParameter("Var1", Var1)
Программа sqlcmd.Параметры.Добавить(sqlPrm)
sqlPrm = новый SqlParameter("Var2", Var2)
Программа sqlcmd.Параметры.Добавить(sqlPrm)
sqlPrm = новый SqlParameter("Var3", Var3)
Программа sqlcmd.Параметры.Добавить(sqlPrm)
sqlPrm = новый SqlParameter("Var4", Var4)
Программа sqlcmd.Параметры.Добавить(sqlPrm)
sqlPrm = новый SqlParameter("Var5", Var5)
Программа sqlcmd.Параметры.Добавить(sqlPrm)
Если objConn.State = 1, то
objConn.Рядом()
Конец, Если
objConn.Открыть()
Программа sqlcmd.Метод executenonquery()
objConn.Рядом()

Поймать ex как исключение
Ящик для сообщений.Показать(напр.сообщение)
Конец Попытки

Конец Подводной Лодки
его не делают все время его делают несколько раз и это не только с этим столом

CHill60

Не зная стоящего за этим кода AddAuditTrail мы ничем не можем помочь. Вы не можете прикреплять файлы здесь. Используйте ссылку улучшить вопрос, чтобы добавить код, который выполняет вставку

inahebel

спасибо за повтор пожалуйста проверьте ? и снова я добавил дополнительную информацию

phil.o

тогда нам нужен метод add5Value... Пожалуйста, покажите фрагмент кода, ответственный за фактическое взаимодействие с сохраненным prcedure.

inahebel

Суб add5Value(имя процедуры бывал в строку, как byval var1 следующим объект, как byval var2 будет как объект, Var3 бывал как объект, _
Бывал Var4 Как Объект, Бывал Var5 Как Объект)
Попробуй


Dim SqlCmd Как Новая Команда SqlCommand
Программа sqlcmd.CommandType = CommandType.Хранимая процедура
Программа sqlcmd.Свойства Commandtext = Имя Процедуры
Программа sqlcmd.Соединение = objConn

Dim sqlPrm как новый SqlParameter("Var1", Var1)
Программа sqlcmd.Параметры.Добавить(sqlPrm)
sqlPrm = новый SqlParameter("Var2", Var2)
Программа sqlcmd.Параметры.Добавить(sqlPrm)
sqlPrm = новый SqlParameter("Var3", Var3)
Программа sqlcmd.Параметры.Добавить(sqlPrm)
sqlPrm = новый SqlParameter("Var4", Var4)
Программа sqlcmd.Параметры.Добавить(sqlPrm)
sqlPrm = новый SqlParameter("Var5", Var5)
Программа sqlcmd.Параметры.Добавить(sqlPrm)
Если objConn.State = 1, то
objConn.Рядом()
Конец, Если
objConn.Открыть()
Программа sqlcmd.Метод executenonquery()
objConn.Рядом()

Поймать ex как исключение
Ящик для сообщений.Показать(напр.сообщение)
Конец Попытки

Конец Подводной Лодки

ZurdoDev

Вы должны вызывать хранимую процедуру несколько раз.

inahebel

спасибо за повтор но он делал бы это все время а здесь это не так он делает это несколько раз

ZurdoDev

Другого выхода нет. INSERT INTO with VALUES() будет выполнять только одну запись. Он не может сделать это иным способом. Таким образом, либо вы вызываете его несколько раз, либо не вставляете повторяющиеся записи. В любом случае, вам нужно отследить, что вы делаете неправильно.

Dave Kreskowiak

Код, который вы опубликовали, вызывает процедуры только один раз. Какой бы код ни вызывал этот код, он может быть причиной проблемы.

0 Ответов