Повторяющиеся записи в таблице
Привет я использую этот код для ввода информации в базу данных
"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
Код, который вы опубликовали, вызывает процедуры только один раз. Какой бы код ни вызывал этот код, он может быть причиной проблемы.