Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема при вызове DataApdate.Update  (Прочитано 6869 раз)
0 Пользователей и 1 Гость смотрят эту тему.
NoeN
Гость
« : 27-03-2008 00:49 » new

http://Хочу спросить у вас, русичи славные:
Проблема эк подкралась невесть откуда, имею я базу(access  или sql несуть важна), в ней 2 таблицы, к примеру Товар и Заказчик, связанные по ID заказчика(один-ко-многим); Я заганяю из в DataSet через два разных объекта DataAdapter. Все команды прописываю вручную для каждого DataAdapta. И каждую из таблиц загоняю в отдельный DataGrid. Все загружается корректно, но когда вызываю da.Update(ds,"тут стоит имя таблицы") выдается ошибка с указанием столбцов второй ошибки(Arithmetic overflow error converting expression to data type datetime.The statement has been terminated. System.Collections.ListDictionaryInternal .Net SqlClient Data Provider. ИЛИ  такую вот при удалении - The DELETE statement conflicted with the REFERENCE constraint "Orders_FK00". The conflict occurred in database "NorthMDBSQL", table "dbo.Orders", column 'CustomerID'.
The statement has been terminated. System.Collections.ListDictionaryInternal .Net SqlClient Data Provider) в чем тут проблема ?если есть надобность могу скинуть весь код, но он на C#
Заранее спасибо о великие и могучие гурру СУБД!!
Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 27-03-2008 13:45 » 

Ошибки вызваны разными вещами:
Первая - какая-то ваша переменная (арифметическая т.е. число)  не может быть преобразована в тип DataTime. Попробуйте конвертировать через строку.
Вторая - вероятнее всего возникает если удаляете запись в master таблице, при этом записи с CustomerID в подчиненной таблице будут ссылаться на несуществующий ID. Удаляйте наоборот - сначала в подчиненной, а потом уже и в главной.
Записан

С уважением, Oldy.
NoeN
Гость
« Ответ #2 : 27-03-2008 14:09 » 

Спасибо, с этим я разобрался, у меня была ошибка с определением параметров.
тут бругая вылезла бяка: Я делаю обновление но как передать в параметры значение для обновления??
                cmdUpdateShi.CommandText = "UPDATE Shippers SET ShipperID = @ShipperID, CompanyName = @CompanyName, Phone = @Phone WHERE ((Shippers.ShipperID)=@ShipperID)";
                cmdUpdateShi.CommandType = CommandType.Text;
                prm_Shi = cmdUpdateShi.Parameters.Add("@ShipperID", OleDbType.Integer, 40, "ShipperID");
                //prm_Shi.Value = txtID.Text;
                cmdUpdateShi.Parameters["@ShipperID"].Value = txtID.Text ;
                prm_Shi = cmdUpdateShi.Parameters.Add("@CompanyName", OleDbType.VarChar, 40, "CompanyName");
                //prm_Shi.Value =txtCompanyName.Text;
                cmdUpdateShi.Parameters["@CompanyName"].Value = txtCompanyName.Text;
                prm_Shi = cmdUpdateShi.Parameters.Add("@Phone", OleDbType.Integer, 40, "Phone");
                //prm_Shi.Value = txtPhone.Text;
                cmdUpdateShi.Parameters["@Phone"].Value = txtPhone.Text;
                prm_Shi.SourceColumn = "ShipperID";
                prm_Shi.SourceVersion = DataRowVersion.Original;
                cmdUpdateShi.ExecuteNonQuery();
                mdaShi.UpdateCommand = cmdUpdateShi;
Но при этом хотя и поля текстовые заполены данные в таблице не обновляются ;-(
Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 27-03-2008 16:19 » 

cmdUpdateShi.CommandText = "UPDATE Shippers SET CompanyName = "NewCompanyName", Phone = "NewPhone" WHERE                  Shippers.ShipperID=NeededIDNumber";
cmdUpdateShi.Execute;
« Последнее редактирование: 27-03-2008 16:21 от Oldy » Записан

С уважением, Oldy.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines