|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
Интересует что выдают MsgBox Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2004, 07:55 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
Лучше сразу же так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.
В какую вы таблицу хотите внести изменения uchveks или spVeks? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2004, 10:08 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
а почему: 'Убираем пока это ... ведь у меня именно в этом и заполняется датасет в функции другой формы! естественно незаполнив датасет все эти месаджы выдают false и nothing если же эти строки не комментировать, то выдаёт true 1 true 1 в чем же дело? непойму ... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2004, 23:29 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
В какую вы таблицу хотите внести изменения uchveks или spVeks? в таблицу uchveks, а таблица spVeks это тажа таблица в датасете. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2004, 23:31 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
>а почему: 'Убираем пока это ... ведь у меня именно в этом и заполняется датасет в функции другой формы! естественно незаполнив датасет все эти месаджы выдают false и nothing Потому что это всего лишь "пока" :-) а сейчас не убираем. >если же эти строки не комментировать, то выдаёт true 1 true 1 в чем же дело? непойму ... Теперь такой вариант, обратите внимания на переставленные и добавленные строки, а также на то сработает ли RowUpdating и внесутся ли изменения в БД. А также произведите изменения в модальной форме минимум двух строк: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2004, 12:19 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
не вносятся изменения в бд OleDbDataAdapter1.TableMappings.Add("Table", "spVeks") а почему "Table" ? ведь у меня имя таблицы в бд - uchveks, а в dataset вроде бы spVeks а какие изменения в модальной форме? а Console.WriteLine(modified.Tables(0).TableName) кстати не делает - отсутствует ссылка ... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2004, 15:05 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
>не вносятся изменения в бд >OleDbDataAdapter1.TableMappings.Add("Table", "spVeks") Так эту строчку OleDbDataAdapter1.TableMappings.Add("Table", "spVeks") уберем Так как я у вас заметил что уже есть выше TableMappings только там ОБЯЗАТЕЛЬНО исправьте uchveks на spVeks. >а Console.WriteLine(modified.Tables(0).TableName) кстати не делает - отсутствует ссылка ... И правильно потому что впереди AcceptChanges, так что эти строки убивайте Код: plaintext 1. 2.
>а почему "Table" ? ведь у меня имя таблицы в бд - uchveks, а в dataset вроде >бы spVeks Да потому что в dataSet как раз у вас и spVeks. Пробуйте код еще раз и что выдают другие сообщения Before, After а также интересно еще раз посмотреть на весь код - будет видно что вы добавили а что нет и где еще требуется редакция. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2004, 15:21 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
такое ощущение, что начали ходить по кругу при клике на первой кнопке вызываю модальную форму и заполняю грид данными: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
в той модальной форме происходит следующее: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
и жму на вторую кнопку пытаясь сохранить изменения в базе: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
но в базе не обновляется ни чего . всё таки почему у меня в TableMapping висит "Table" ? написать: Код: plaintext
При обновлении не удалось найти TableMapping['Table'] или DataTable 'Table'. как же правильно мне сделать с TableMapping ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2004, 16:55 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
Правильно так: Код: plaintext 1.
Вы так пробовали? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2004, 17:34 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
Код: plaintext
An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in system.data.dll ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2004, 23:38 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
заполнил грид без модальной формы и обновил данные - обновились в бд значит не получается сделать update адаптара для нужной таблицы, а нужную таблицу из модальной формы незнаю как указать чтоб сделать merge правильно, или TableMappings как сделать правильно? немогу. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2004, 02:35 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
Ну осталось значит разобраться с логикой работы модальной формы. Опишите ее поподробнее. На первый взгляд вы используете излишнее количество "наборов строк" (DataSet, DataRow()). А также Clone у вас стоит где нибудь или нет. Одна из проблем у вас заключается в том что вы выбрали в DataSet одно название для таблицы, а в базе данных название у этой таблице иное, но это не значит что надо все сейчас менять, DataSetу - отсоединенный набор данных и ему все равно как и где что называется, а вот DataAdapterу не все равно. Вообще ответ лежит в изучении DataSet который идет на обновление, мне кажется у вас там две таблицы одна называется spVeks другая uchVeks. Но это только предварительное заключение, вообще хотелось бы узнать подробно логику работу модальной формы, что откуда куда поступает, и мне кажется есть более простое решение вашей проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2004, 10:09 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
с dataset в модальной форме я уж чего только не делал. как она выглядит я приводил здесь же выше, повторюсь: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
там только процедура Load для формы и функция AddVeks в которой делается merge при загрузке формы заполняется датасет(таблица "spVeks") из той же таблицы бд, в которую передаются обновления в основной форме, при вызове функции создается массив выбранных строк и передается dsNewSD.Merge(dataRows) clone нет! причем dsNewSD в основной форме до открытия модальной формы просто создается и не заполняется ничем ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2004, 12:19 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
Я бы изменил логику следующим образом утрированный пример но просто многое мне не нравиться как сейчас сделано у вас, например передача DataSet по ссылке ref в модальную форму: Итак пример: Пусть главная форма называется MainForm, как у вас я не знаю. В главной форме объявляем DataSet dsSD с модификатором Friend Например так: Код: plaintext 1.
Перед вызовом модальной формы заполняем dsSD. adpSD.Fill(dsSD, "spVeks") // где adpSD - адаптер переносим из модальной формы в главную. Кстати интересно посмотреть на код этого DataAdapter особено на TableMappings. Далее создаем Clone датасета dsSD, называем его dsNewSD: Dim dsNewSD as DataSet = dsSD.Clone() ' Таким образом Clone создается один раз. Потом вызываем модальную форму: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Модальная форма: Функцию Function AddVeks(ByRef dsNewSD As Data.DataSet) не надо, но у UltraDataGrid этой формы надо поставить модификатор Friend. А Load модальной формы при этом выглядит следующим образом, Код: plaintext 1. 2. 3.
Одно из преимуществ такого подхода, что практически в модальной форме нет кода, вся обработка сосредотачивается в главной/основной форме. ----------------------------------------------------------------------------- Если же хотите разобраться со своим кодом, то детально изучайте все свои DataSetы. Какие когда таблицы появляются, какие когда строки изменяются и т.д. Также применительно к тому что сейчас есть, интересно изучить dsNewSD до и после Merge. Какие таблицы, какие строки, какие RowState Так что ждем результатов :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2004, 13:23 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
в модальной форме ругается на последнию строку Dim myOwner As FormNewSd myOwner = CType(myOwner, FormNewSd) ugSelVeks.DataSource = myOwner.dsSD.Tables("spVeks") В экземпляре не задана ссылка на объект. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2004, 14:22 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
>в модальной форме ругается на последнию строку ugSelVeks.DataSource = myOwner.dsSD.Tables("spVeks") В экземпляре не задана ссылка на объект. А вы dsSD объявили в основной форме с модификатором Friend или нет. Код: plaintext 1.
Вообще когда в VS.NET набиратет myOwner и ставите точку появляется на выбор dataset с именем dsSD? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2004, 17:10 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
dsSD объявил Friend в подчиненой ставлю точку после myOwner и есть там dsSD а ругается! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2004, 17:28 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
Ну хорошо бы посмотреть на оригинальную ругань. А вы случаем не из MDI child формы вызываете модальную форму. Если да , то owner возвратит MDI parent. И тогда надо делать уже чуть чуть по другому. И еще везде обязательно где у вас Fill и Update и вы работаете с таблицей spveks добавьте вторым параметром название этой таблицы. Где то видно что это уже стоит где то нет. Например таким образом: Код: plaintext 1. 2.
И привидите код adpSD. DataAdapterа ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2004, 19:48 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
А вы случаем не из MDI child формы вызываете модальную форму. да Ну хорошо бы посмотреть на оригинальную ругань. В экземпляре не задана ссылка на объект. (стоит Rus langpack) И привидите код adpSD. DataAdapterа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2004, 22:30 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
Ошибочка вышла, вместо этого попробуйте так: Код: plaintext 1. 2. 3.
пробуйте так: Код: plaintext 1. 2. 3.
Но это сработает если вы не пытаетесь открыть модальный диалог из MDI-Child формы. И еще вопрос по логике работы: вы после того как получили выделенные строки из грида, где их изменяете? В модальной форме или в основной? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2004, 07:32 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
myOwner = CType(Me.Owner, FormNewSd) ругань: Specified cast is not valid. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2004, 10:58 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
открываю диалог из починенной mdi формы выделенные в модальной форме строки редактирую уже в основной ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2004, 11:00 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
Значит все таки из Mdi - child запускаете модальную форму. Тогда делаем вместо этого: Код: plaintext 1. 2. 3.
Так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
>открываю диалог из починенной mdi формы >выделенные в модальной форме строки редактирую уже в основной То есть я так понял из главной формы открываете подчиненную Mdi-child и этой подчиненной открываете Modal dialog выбираете записи , возвращаетесь в подчиненную Mdi-Child и здесь их редактируете? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2004, 11:11 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
работать модальная по вновь утвержденному плану стала :) спасибо :) правда теперь при каждом вызове модальной строки в гриде умножаются ... То есть я так понял из главной формы открываете подчиненную Mdi-child и этой подчиненной открываете Modal dialog выбираете записи , возвращаетесь в подчиненную Mdi-Child и здесь их редактируете? да. потом я их ещё копировать хочу ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2004, 11:52 |
|
обновления из грида в базу
|
|||
---|---|---|---|
#18+
>правда теперь при каждом вызове модальной строки в гриде умножаются Интересно посмотреть, в очередной раз :-) , полученный код. С разъяснением что хотелось бы получить при определенных операциях. Если надо чтобы при каждом вызове модальной формы строки в гриде очищались то можно поставить Dim dsNewSD as DataSet = dsSD.Clone() перед вызовом модальной формы. Другим способом: можно объявить с модификтором Friend dsNewSD в форме из которой вызываете модальный диалог. Код: plaintext 1.
Код: plaintext 1. 2.
Если эта функциональность ненужна, то напишите какая именно функциональность нужна. Чем подробнее все будет расписано тем лучше :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2004, 12:10 |
|
|
start [/forum/topic.php?fid=17&msg=32529540&tid=1354117]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 166ms |
0 / 0 |