Я работаю над проектом ASP.NET MVC. Мне нужна помощь в обновлении записей в моей таблице.Обновление нескольких записей с тем же ID
В принципе у меня есть выпадающий список в моем приложении, в котором когда пользователь выбирает список из выпадающего списка, будет предоставлен Скачать вариант, где пользователь может загрузить CSV.
Здесь внутри CSV у меня есть много строк записей. Но все эти строки имеют одинаковые categoryid. Скажем, например, у меня три строки в моем csv, тогда все эти три строки имеют одинаковые категории.
Теперь проблема, с которой я столкнулся, - это когда пользователь загружает файлы, мне нужно сохранить их в базе данных. Итак, вот что происходит, если файл csv имеет три строки, то результат последней строки сохраняется во всех трех строках.
Это мой код:
DataTable upCSV = (DataTable)TempData["UploadedCSV"];
{
if (isHeaderAccepted)
{
Data_printEntities ordertable = new Data_printEntities();
foreach (DataRow dr in upCSV.Rows)
{
ObjectParameter getemail = new ObjectParameter("email", dr["email"].ToString());
ObjectParameter getpassword = neObjectParameter("password",dr["password"].ToString());
ObjectParameter getMobile = new ObjectParameter("Mobile", dr["Mobile"].ToString());
ObjectParameter getPhone = new ObjectParameter("Phone", dr["Phone"].ToString());
var spresults = ordertable.usp_UpdateUserData(45, 368, getemail.Value.ToString(), getpassword.Value.ToString(), getMobile.Value.ToString(), getPhone.Value.ToString())
ordertable.SaveChanges();
}
}
}
Здесь 45 идентификатора который каждое использование имеет и 368 выпадающей сессия идентификатора. Здесь я испытываю проблемы. Для всех трех рядов 45 и 368 являются общими.
Здесь, если у меня есть три строки в csv, он циклически проходит три раза, но при обновлении он обновляет результат последней строки со всеми тремя строками.
Так как я могу сделать свой код для сохранения, после очень цикла? Я имею в виду, когда он проходит через первую строку и когда он выполняет хранимую процедуру, этот результат должен сохраняться в моей таблице, после чего он должен продолжить цикл до второй строки.
Как я могу это сделать?
Обновление: usp_UpdateUserData является хранимой процедурой для обновления записей. Это мой зр:
ALTER PROCEDURE [dbo].[usp_UpdateUserData]
@idAccount int = 0,
@idcategory int = 0,
@email nvarchar(100) =0,
@password nvarchar(50) = 0,
@Mobile nvarchar(50) = 0,
@Phone nvarchar(50)
AS
BEGIN
Begin
Update tblCustomer
Set
email = @email, password = @password, mobileNo = @Mobile, phoneNo = @Phone
where idAccount = 45 and idCategoryL = 368
END
End
GO
Как выглядит таблица, которую вы обновляете? Каков его первичный ключ? Как насчет usp_UpdateUserData? –
@ColinYoung Привет, я обновил сообщение с помощью хранимой процедуры.Пожалуйста, изучите это. У меня есть первичный ключ в столбце под названием cutid, но как я могу взять первичный ключ здесь для той же idcategory? – Ajay
Просьба также разместить образец CSV. Если вы пытаетесь обновить записи, как вы собираетесь сопоставлять разные записи, если вы жестко кодируете учетную запись и идентификаторы категорий? Конечно, он собирается обновлять одну и ту же запись каждый раз. –