Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как INSERT несколько записей из DataGrid в mdb разом
|
|||
|---|---|---|---|
|
#18+
По одной записи получается, а все добавленные пользователем в DataGrid перенести в базу данных не получается. Помогите если сможете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 07:51 |
|
||
|
Как INSERT несколько записей из DataGrid в mdb разом
|
|||
|---|---|---|---|
|
#18+
По одной записи получается, а все добавленные пользователем в DataGrid перенести в базу данных не получается. Помогите если сможете. А код свой покажите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 08:08 |
|
||
|
Как INSERT несколько записей из DataGrid в mdb разом
|
|||
|---|---|---|---|
|
#18+
Private Sub btnIns_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIns.Click Dim oRD As OleDb.OleDbDataReader Dim x As Integer oRD = oApp.DB.ExecCommandReader("SELECT ID FROM ActionPlanFact ORDER BY ID;") Do While oRD.Read() x = oRD.GetInt32(0) Loop oRD.Close() Dim dtitem0 As Double = Convert.ToDouble(dt.Rows(dgData.CurrentRowIndex).Item(5)) Dim dtitem1 As Double = Convert.ToDouble(dt.Rows(dgData.CurrentRowIndex).Item(6)) Dim dtitem2 As Double = Convert.ToDouble(dt.Rows(dgData.CurrentRowIndex).Item(7)) Dim dtitem3 As Double = Convert.ToDouble(dt.Rows(dgData.CurrentRowIndex).Item(8)) Dim dtitem4 As Integer = Convert.ToInt32(dt.Rows(dgData.CurrentRowIndex).Item(9)) Dim dtitem5 As Integer = Convert.ToInt32(dt.Rows(dgData.CurrentRowIndex).Item(10)) Dim dtitem6 As Integer = Convert.ToInt32(dt.Rows(dgData.CurrentRowIndex).Item(0)) Dim dtitem7 As Integer = Convert.ToInt32(dt.Rows(dgData.CurrentRowIndex).Item(1)) Dim dtitem8 As Integer = Convert.ToInt32(dt.Rows(dgData.CurrentRowIndex).Item(2)) Dim dtitem9 As Integer = Convert.ToInt32(dt.Rows(dgData.CurrentRowIndex).Item(3)) Dim dtitem10 As Integer = Convert.ToInt32(dt.Rows(dgData.CurrentRowIndex).Item(4)) strSQL = "INSERT into ActionPlanFact values (" & x + 1 & ", @dt0, @dt1, @dt2, @dt3, " & dtitem4 & ", " & dtitem5 & ", " & dtitem6 & ", " & dtitem7 & ", " & dtitem8 & ", " & dtitem9 & ", " & dtitem10 & "); " Try If oApp.DB.ExecCommand(strSQL, New Object() {"@dt0", dtitem0, "@dt1", dtitem1, "@dt2", dtitem2, "@dt3", dtitem3}) > 0 Then dt.Rows(dgData.CurrentRowIndex).Item(11) = x + 1 dt.AcceptChanges() dgData.DataSource = dt dgData.Refresh() tbRec.Text = CStr(dt.Rows.Count) End If Catch ex As Exception MsgBox("ошибка обновления базы данных") End Try End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 09:25 |
|
||
|
Как INSERT несколько записей из DataGrid в mdb разом
|
|||
|---|---|---|---|
|
#18+
Пока не понял смысла этой процедуры :-( Покажите текст oApp.DB.ExecCommand. Если эта процедура в цикле формирует sql-текст команды insert, то там ли у вас стоит Loop ??? Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 10:02 |
|
||
|
Как INSERT несколько записей из DataGrid в mdb разом
|
|||
|---|---|---|---|
|
#18+
Этим я подсчитываю идентификационный номер последней записи в базе данных, другого способа я не нашла. Автоматически этот номер не вставлялся в базе. Dim oRD As OleDb.OleDbDataReader Dim x As Integer oRD = oApp.DB.ExecCommandReader("SELECT ID FROM ActionPlanFact ORDER BY ID;") Do While oRD.Read() x = oRD.GetInt32(0) Loop ' oRD.Close() Я вычисляю последний номер и присваиваю записи из DataGrid следующий, х+1. Одна запись вставляется безошибочно. А разом несколько не знаю как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 10:12 |
|
||
|
Как INSERT несколько записей из DataGrid в mdb разом
|
|||
|---|---|---|---|
|
#18+
Я вычисляю последний номер и присваиваю записи из DataGrid следующий, х+1. Одна запись вставляется безошибочно. А разом несколько не знаю как. Используя уже написанный код Вынесите определение нового ID, в отдельную процедуру, примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. Делаем через CurrencyManager. Код: 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. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 10:36 |
|
||
|
Как INSERT несколько записей из DataGrid в mdb разом
|
|||
|---|---|---|---|
|
#18+
Ошибка: Код: plaintext 1. 2. Код: plaintext 1. 2. Думаю идея понятна Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 10:39 |
|
||
|
Как INSERT несколько записей из DataGrid в mdb разом
|
|||
|---|---|---|---|
|
#18+
Спасибо, попробую, но завтра. У нас конец рабочего дня ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 11:21 |
|
||
|
Как INSERT несколько записей из DataGrid в mdb разом
|
|||
|---|---|---|---|
|
#18+
Я заметил, что попутно речь шла о проблеме автономера в БД (вероятно БД - SQL 2000 или подобная)... Сам сталкивался с этой траблой - просто когда создаём таблицу с полем ID (DtaType = int, соответственно), потом присваиваем ему ключик, а в финале правой кнопочкой (если таблицу делаем в VS.NET) лезем в Property Page и на закладочке Tables в строке Table Identity Column выставляем ID... Теперь это поле будет автоматически при бавлять +1 и о нём в коде проги заботиться вообще будет не нужно... P.S. Извините за Offtop... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 12:26 |
|
||
|
Как INSERT несколько записей из DataGrid в mdb разом
|
|||
|---|---|---|---|
|
#18+
vladgrid спасибо за дополнение, учту ваши знания, но речь идет о БД Access. Поле вроде бы и ключевое, но никак не удавалось прибавить номер записи автоматически. Я понимаю, что моя программа выглядит коряво, но ... как умеем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2004, 01:33 |
|
||
|
Как INSERT несколько записей из DataGrid в mdb разом
|
|||
|---|---|---|---|
|
#18+
но речь идет о БД Access. Поле вроде бы и ключевое, но никак не удавалось прибавить номер записи автоматически. Я понимаю, что моя программа выглядит коряво, но ... как умеем. В Access - это называется "Счетчик". Но для начала я бы попробовал так как написано выше, а потом можно и полностью пересмотреть использование DataReader и DataTable, в пользу DataAdapter и DataSet - все таки это полегче будет, с меньшими трудозатратами, да и получится красивее. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2004, 06:28 |
|
||
|
Как INSERT несколько записей из DataGrid в mdb разом
|
|||
|---|---|---|---|
|
#18+
Я попробовала, как вы предложили и появилась новая засада: ID в программе присутствует в виде dt.Columns.Add(New DataColumn("ID", GetType(Integer))) 'идентификатор записи dt.Columns("ID").Unique = True dt.Columns("ID").ColumnMapping = MappingType.Hidden т.е. пользовательего не может видеть и вводить ID, но грид не дает вводить следующую запись, пока есть незаполненные поля в этой. ID в гриде мне нужен для реализации функции удаления записи из грида и БД. Запись в БД и в гриде связываются только по ID. Мне уже кажется, что у меня в корне неправильный подход к DataGrid. Неужели нужно отслеживать отдельно Insert, Update, Delete, как это делаю я. Это не удобно для юзеров. Про DataAdapter и DataSet я знаю еще меньше, чем про DataTable и DataReader. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2004, 09:07 |
|
||
|
Как INSERT несколько записей из DataGrid в mdb разом
|
|||
|---|---|---|---|
|
#18+
Про DataAdapter и DataSet я знаю еще меньше, чем про DataTable и DataReader. Придется почитать про это, ИМХО DataSet - это центральный класс в ADO.NET. Связка DataAdapter + DataSet - намного легче для восприятия. Плюс если у вас VS.NET то при помощи DataWizard'а вы можете посмотреть как примерно следует работать с этими объектами. По поводу проблемы с ID. Можно организовать у себя в приложении генерирование суррогатных ключей при добавлении записи, а затем при добавлении данных уже в базу данных заменять суррогатные на те которые применяются в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2004, 09:41 |
|
||
|
|

start [/forum/topic.php?fid=20&msg=32733329&tid=1438175]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 391ms |

| 0 / 0 |
