|
C# ODBC DBF: сохранить изменения в dbf-файле
|
|||
---|---|---|---|
#18+
Добрый день. Открываю dbf-файл dBase III через ODBC , добавляю строку, отображаю в GataGridView - новая строка видна. Сохраняю изменения в тот же dbf-файл - ошибок не выдает, но файл остался без изменений. Проблема в где-то в вызовах AcceptChanges или Update? Код: c# 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.
Изначально в коде не было DataSet и в гриде все отображалось, но изменения не сохраняются. Обшарил форумы, добавил DataSet - та же фигня. Помогите пожалуйста починить кто в теме ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2016, 16:29 |
|
C# ODBC DBF: сохранить изменения в dbf-файле
|
|||
---|---|---|---|
#18+
Аналогичный код с OLE DB: Код: c# 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.
Результат тот же. Нифига не пнимаю ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2016, 17:00 |
|
C# ODBC DBF: сохранить изменения в dbf-файле
|
|||
---|---|---|---|
#18+
olgenur, а команды Update, Insert, Delete у адаптера Пушкин настраивать будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2016, 17:03 |
|
C# ODBC DBF: сохранить изменения в dbf-файле
|
|||
---|---|---|---|
#18+
Pallaris, так?: OdbcCommandBuilder cb = new OdbcCommandBuilder(adapter); adapter.UpdateCommand = cb.GetUpdateCommand(); уже что-то проясняется, но как это сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2016, 17:11 |
|
C# ODBC DBF: сохранить изменения в dbf-файле
|
|||
---|---|---|---|
#18+
в выражение типа Код: sql 1. 2. 3.
вручную подставлять данные типа Код: c# 1. 2. 3.
я же внес их уже в ds.Tables[0].Rows! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2016, 17:25 |
|
C# ODBC DBF: сохранить изменения в dbf-файле
|
|||
---|---|---|---|
#18+
почитал http://ru.stackoverflow.com/questions/426279/dataset-не-сохраняет-изменения-в-БД добавил в код: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
ошибок не выдает, но эффекта никакого структура таблицы (поле; тип; длина; знаки после запятой): SBK_FIO;C;50;0 SBK_PAS;C;10;0 SBK_INN;C;10;0 SBK_NUM;C;16;0 SBK_SUM;N;18;2 HELP ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2016, 19:55 |
|
C# ODBC DBF: сохранить изменения в dbf-файле
|
|||
---|---|---|---|
#18+
olgenur Код: c# 1.
Там еще в конструкторе можно указать имя филда, из которого брать данные для параметра ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2016, 20:39 |
|
C# ODBC DBF: сохранить изменения в dbf-файле
|
|||
---|---|---|---|
#18+
olgenur, убери эту фигню Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2016, 23:38 |
|
C# ODBC DBF: сохранить изменения в dbf-файле
|
|||
---|---|---|---|
#18+
Pallaris, можно, но можно и без него. Здесь http://blogs.msdn.com/b/spike/archive/2009/03/02/dataadapter-update-returns-0-and-doesn-t-update-the-table-in-sql-server.aspx обнаружил что AcceptChanges снимает пометки с измененных/добавленных записей, в итоге в базу ничего не попадает если Update делать после него. Закоментировал все аксепты перед апдейтом (ViPRos был прав) - ругнулось что Insert не описан. И его добавил: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Теперь ругается на синтаксис INSERT INTO... пробовал оба варианта INSERT INTO Table (...) ... и INSERT INTO Table VALUES (...) Возможно проблема в Parameters.Add("@SBK_SUM", OdbcType.Numeric, 18); Можно ведь автоматически команды настраивать через CommandBuilder, но нужен первичный ключ в базе, не знаю как его в dBaseIII сделать () ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2016, 22:32 |
|
|
start [/forum/topic.php?fid=20&fpage=68&tid=1400862]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 151ms |
0 / 0 |