powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
38 сообщений из 38, показаны все 2 страниц
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32611606
Греттт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот какая трабла: Данные выводятся из одной строка базы в 3 textBoxа, в которых происходит их редактирование, затем изменения должны поступить в базу, но... они, видимо, кому должны, всем простили...
код:

oleDbConnection1.Open();
oleDbDataAdapter1.UpdateCommand.Parameters["NAME"].Value = tBName.Text;
oleDbDataAdapter1.UpdateCommand.Parameters["ADDRESS"].Value = tBAdrDolz.Text;
oleDbDataAdapter1.UpdateCommand.Parameters["PHONE"].Value = tBPhoneSal.Text;
BindingContext[dS_Clercs1,"CLERCS"].EndCurrentEdit();
dS_Clercs1.AcceptChanges();
oleDbDataAdapter1.Update(dS_Clercs1,"CLERCS");
oleDbConnection1.Close();


Если пишу
oleDbDataAdapter1.UpdateCommand.ExecuteNonQuery(); ,
то ошибка
An unhandled exception of type 'System.InvalidCastException' occurred in system.data.dll

Additional information: Specified cast is not valid.


Знающие, скажите, что не так, пжлст?
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32611626
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dS_Clercs1.AcceptChanges(); // <--- "скушала" все обновления

убери или поставь после Update, иначе, действительно, ничего не будет обновляться в БД
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32612223
Греттт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда точно такая же ошибка возникает на

oleDbDataAdapter1.Update(dS_Clercs1,"CLERCS");
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32612237
Ustazz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо проверить типы параметров, возможно что-то не совпадает
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32612373
Греттт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну.. с типами вроде все в порядке. Если можно проверить вот так:
MessageBox.Show(dS_Clercs1.CLERCS.Columns[1].ColumnName.GetType().ToString());
То здесь стринг. TextBox тоже стринг. Или я не в этом направлении проверяю?
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32612465
Ustazz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например,

oleDbDataAdapter1.UpdateCommand.Parameters["PHONE"].SqlDbType
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32612472
Ustazz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не SqlDbType, то OleDbType ну что-то в этом роде :)
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32612515
Гретт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишет VarChar. Хм.... Что же делать?
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32612528
Ustazz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В базе данных теже самые типы используются?
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32612533
Греттт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32612579
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
видно, без полного кода для адаптера и команд не обойтись.

1. данные из одной таблицы БД ?
2. почему явно присваиваешь значения, а не берешь из DataSet (DataTable) ?
3. SourceVersion (это для таблицы) ?
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32612676
Греттт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю в VS . NET => ручками мало что прописываю. Вот
this.oleDbDataAdapter1 = new System.Data.OleDb.OleDbDataAdapter();
this.oleDbDeleteCommand1 = new System.Data.OleDb.OleDbCommand();
this.oleDbConnection1 = new System.Data.OleDb.OleDbConnection();
this.oleDbInsertCommand1 = new System.Data.OleDb.OleDbCommand();
this.oleDbSelectCommand1 = new System.Data.OleDb.OleDbCommand();
this.oleDbUpdateCommand1 = new System.Data.OleDb.OleDbCommand();


Данные из одной таблицы

Код: plaintext
1.
 2 . почему явно присваиваешь значения, а не берешь из DataSet (DataTable) ?
А какая разница?
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32612839
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДелаю в VS . NET => ручками мало что прописываю
[skip]
А какая разница?
да вот разница в том, что там где прошелся ручками - там и возникли ошибки. VS Designer сгенерил то update для таблицы и адаптер пытается выполнить update для таблицы. а оказывается что все это не так, и обновление нужно делать не через таблицу, и версии Row здесь тоже не пришей ни чему. вот и возникли непонятки. Попробуй закоментарить строки с присваиванием Value, оставь только:
Код: plaintext
1.
BindingContext[dS_Clercs1,"CLERCS"].EndCurrentEdit();
oleDbDataAdapter1.Update(dS_Clercs1,"CLERCS"); 
если, конечно, у тебя Binding TextBox'ов идет по dataset, а в качестве мемберов указаны CLERCS.NAME, CLERCS.ADDRESS и тд.
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32612897
Греттт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
оф топик
Блин, что ж так сложно-то все...
оф топик
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32612951
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<off
по моему это ты сам себе усложнил жизнь - ну зачем было руками доделывать код, который практически рабочий. всего и нужно было добавить binding'и для TextBox'ов. работы по кодированию на 2 минуты, куда больше на рисование формы времени потратил...
/>
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32612972
Греттт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну а если так:
вывожу данные в datagrid (dataSource = dataSet), тут же в ячейках делаю изменения; что теперь надо написать в коде, чтобы внести обновления в саму базу?
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32612987
Греттт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кузя<off
по моему это ты сам себе усложнил жизнь />

Просто я только начинаю - много нового для себя узналА =)
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32613012
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторузналА
Извини...

если соединение с БД не закрывалось, то:
Код: plaintext
1.
currencyManager.EndCurrentEdit();
adapter.Update();
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32613068
Греттт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кузя авторузналА
Извини...

[/src]
Ничего!

авторесли соединение с БД не закрывалось, то:
[src]currencyManager.EndCurrentEdit();
adapter.Update();

Мне уже как-то не удобно... но в этом случае опять на месте

oleDbDataAdapter1.Update(dS_Clercs1,"CLERCS");

ругань:
An unhandled exception of type 'System.InvalidCastException' occurred in system.data.dll

Additional information: Specified cast is not valid.
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32613113
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.в гриде все нормально показывает ?
2.есть ли у таблицы PK ?

тогда (оба ответа "да") попробуй так:
вывод таблицы в грид
Код: plaintext
dataGrid.SetDataBinding(dataSet, "CLERCS");
и внесение изменений в БД
Код: plaintext
1.
2.
CurrencyManager cm=dataGrid.BindingContext[dataGrid.DataSource, dataGrid.DataMember] as CurrencyManager;
if(cm!=null) cm.EndCurrentEdit();
adapter.Update(dataSet, "CLERCS");
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32613335
Греттт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так таблица в грид не выводится. РК - это что?
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32613364
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
primary key
без него команды на Update и Delete даже и не строятся в Designer'e (PK используется в WHERE кляузе этих команд)
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32613423
Греттт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понятно, спасибо, просвятил. РК имеется. Проблема остается
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32613453
Греттт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что это за ошибка:
Код: plaintext
1.
2.
3.
An unhandled exception of type 'System.InvalidCastException' occurred in system.data.dll

Additional information: Specified cast is not valid.
???
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32613459
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а содержимое таблицы почему не видно в гриде ?
в ней есть строки ?
заголовки колонок соотвествуют названиям полей ?
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32613508
Греттт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Появляются заголовки колонок и все
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32613514
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
значит в таблице нет записей и Update не проходит, а используется Insert - вот это уже другая песня
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32613521
Греттт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да нет - в таблице есть записи. Они отображаются, когда Adapter.Fill
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32613531
Греттт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ага, сделала, отобразила, только вот опять cast not valid на adapter.UPDATE...
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32613554
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а почему их в гриде не видно [adapter.Fill(); нужно вызывать всегда перед SetDataBinding();] ???
---
такое ощущение, что пошли по второму кругу, только не на TextBox'ах, а на DataGrid.
---
1. какая СУБД используется ?
2. как строятся команды ?
3. текст команды на Update можно привести ?
---
вот взял Access создал базу, создал в VS на С# проект, вывел данные из одной таблицы в DataGrid на форму, занес изменения в БД. на всё/провсё ушло 10 мин. или сегодня 1-е апреля ????
2-е сутки уже пошли :-)
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32613612
Греттт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Смешно сказать, но у меня уже не вторые...
Все-таки спасибо за уделенное внимание
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32613625
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Греттт
OFF:
Гадать можно очень долго, и скорее всего быстрее просто сделать заново с нуля.
ИМХО нельзя замешивать свой код и код формируемый мастером. Можно посмотреть как та или иная вещь делается, скопировать этот код и использовать его уже.

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

Интересно, хотя и так некоторые вещи понятны, выполнить перед Update следующий код при этом сымитировать ошибочную ситуацию и написать какое будет при этом сообщение: Added, Modified или Deleted, либо какая их комбинация.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
DataSet myDataSet = dS_Clercs1;
if (myDataSet.GetChanges(DataRowState.Added) != null)
{
	System.Windows.Forms.MessageBox.Show ("Added");
}
if (myDataSet.GetChanges(DataRowState.Modified ) != null)
{
	System.Windows.Forms.MessageBox.Show ("Modified");
}
if (myDataSet.GetChanges(DataRowState.Deleted ) != null)
{
	System.Windows.Forms.MessageBox.Show ("Deleted");
}
oleDbDataAdapter1.Update(dS_Clercs1,"CLERCS");  // Это  ваш Update

Можно поэкспериментировать попробовав:
1) просто добавить запись, затем выполнить Update,
2) изменить одну запись-выполнить Update
3) удалить запись-выполнить Update.
Результаты постите сюда.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32613635
Греттт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СУБД - Interbase.
Все сведено до простоты.
Создаю проект в VS . NET на C#.
Делаю oleDBConnection, oleDBAdapter, dataSet
Располагаю грид, вывожу туда данные из одной таблицы и одну единственную кнопочку, действие в которой было тобой описано
Меняю данные в одной ячейке, нажимаю кнопочку - ОП! ошибка см. выше.

!!Кстати, через Accses у меня тоже все получилось!! А вот InterBase...
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32613638
Гретт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sa, такие пробы я уже проделала - все стопорится на Update в любом случае. После пробы с Access, в котором все получилось, теперь грешу на InterBase
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32613645
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГретттА что это за ошибка:
Код: plaintext
1.
2.
3.
An unhandled exception of type 'System.InvalidCastException' occurred in system.data.dll

Additional information: Specified cast is not valid.
???Это ошибка преобразования. Смотри, где-то с типами мудришь.
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32613833
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<off
может быть попробовать другой провайдер OleDb для Interbase. Попробуй поискать по этому сайту. не все гладко в .net с некоторыми провайдерами - особенно на insert, uodate и delete.

вроде бы есть прямой managed провайдер interbase.
/>
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32613879
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй с managed провайдером firebird:
http://prdownloads.sourceforge.net/firebird/FirebirdNETProvider-1.6-NET1.1.exe?download
отзывы о работе с interbase вроде бы неплохие :-)
...
Рейтинг: 0 / 0
Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
    #32615531
Греттт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Попробую. А работаю через ZStyle IbOle Provider, пока его не нашла много заморочей всяких было с другими провайдерами
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Помогите : НУ Не ОБНОВЛЯЕТСЯ и все тут
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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