Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: [Excel+Ado.net] Обновление записей - сплошной глюк Добавлено: 01.03.07 10:41  

Автор вопроса:  Светлячок
 помогите разобраться!
плииииЗ!
есть Excel-файл,нужно реализовать возможность редактировать его из формы с DataGrid.
c вставкой данных разобралась,а вот с Update ну никак!!!!не могу разобраться с запросом на обновление!!!!
что нужно писать в Where ведь в Excel-файле нет ключевого поля?
Private Sub Edit_Excel()
        Dim sMsg As String
        Dim nButton As Integer 'переменная для нажатой кнопки
        Dim nResult As Integer

        sMsg = "Зберегти внесені зміни?"
        nButton = vbYesNo + vbQuestion
        nResult = MsgBox(sMsg, nButton, "Збереження запису")
              If nResult = vbYes Then
            Dim RowInsert As Data.DataRow
            RowInsert = ds.Tables(0).Rows(0)

dscmd.UpdateCommand = New OleDbCommand("UPDATE [Лист1$] SET [zavod] = ? and [Дата] = ? where  [color=red][sekcia] = ?[/color]", cnn)
            '"select *from [Лист1$]"
            dscmd.UpdateCommand.Parameters.Add("@zavod", OleDbType.Integer).SourceColumn = "zavod"
            dscmd.UpdateCommand.Parameters.Add("@№Дата", OleDbType.Date).SourceColumn = "Дата"
            dscmd.UpdateCommand.Parameters.Add("@sekcia", OleDbType.Char).SourceColumn = "sekcia"

 RowInsert = ds.Tables("[Лист1$]").NewRow
            RowInsert("zavod") = ds.Tables(0).Rows(DataGrid1.CurrentCell.RowNumber)("zavod")
            RowInsert("Дата") = ds.Tables(0).Rows(DataGrid1.CurrentCell.RowNumber)("Дата")
            RowInsert("sekcia") = ds.Tables(0).Rows(DataGrid1.CurrentCell.RowNumber)("sekcia")
 dscmd.Update(ds.Tables("[Лист1$]"))
            cnn.Close()
            DataGrid1.Refresh()
        End If
    End Sub




плиззз,подскажите как решить данную задачу

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 Alexandr.R



Вопросов: 9
Ответов: 115
 Web-сайт: gvin.net
 Профиль | | #1
Добавлено: 01.03.07 10:44
А зачем вам Ado.net используйте объектную модель Excel-я.

Ответить

Номер ответа: 2
Автор ответа:
 andor



Вопросов: 26
Ответов: 37
 Web-сайт:
 Профиль | | #2
Добавлено: 01.03.07 11:11
sdelai tak:
ds.Tables("[Лист1$]";)).AcceptChanges
a patom update.

Ответить

Номер ответа: 3
Автор ответа:
 Светлячок



Вопросов: 2
Ответов: 4
 Профиль | | #3 Добавлено: 01.03.07 11:22
ничего не получаеться!
попробовала еще вот так
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = c:\Project117Form\ГотПродBASIC1.xls;Extended Properties = ""Excel 8.0; HDR=YES"""
        cmd = New OleDb.OleDbCommand("select *from [Лист1$]", cnn)
        cnn.Open()
        Me.dscmd.Fill(Me.ds)
        ;Dim dr As DataRow
        dr = ds.Tables("[Лист1$]";).NewRow
        dr("zavod";) = ds.Tables(0).Rows(DataGrid1.CurrentRowIndex)("zavod";)
        dr("Дата";) = ds.Tables(0).Rows(DataGrid1.CurrentCell.RowNumber)("Дата";)
                ds.Tables("[Лист1$]";).AcceptChanges()
        Me.dscmd.Update(ds)

не пишет в єксель ничего!!!
как быть?

Ответить

Номер ответа: 4
Автор ответа:
 Светлячок



Вопросов: 2
Ответов: 4
 Профиль | | #4 Добавлено: 01.03.07 11:24
я новичок в этом деле,а как можна по другому решить эту проблему ?мне нужно работать с Excel на форме с дата грид в VB.net

Ответить

Номер ответа: 5
Автор ответа:
 andor



Вопросов: 26
Ответов: 37
 Web-сайт:
 Профиль | | #5
Добавлено: 01.03.07 11:30
stop, stop
a pachemi eto ?

        Dim dr As DataRow
        dr = ds.Tables("[Лист1$]";).NewRow
        dr("zavod";) = ds.Tables(0).Rows(DataGrid1.CurrentRowIndex)("zavod";)

napishi priamo vot tak:
ds.Tables(0).Rows(DataGrid1.CurrentRowIndex)("zavod";) =";DataGrid1 cell changed value"
ds.Tables("[Лист1$]";).AcceptChanges()
Me.dscmd.Update(ds)



Ответить

Номер ответа: 6
Автор ответа:
 Светлячок



Вопросов: 2
Ответов: 4
 Профиль | | #6 Добавлено: 01.03.07 11:38
не записывает в базу!
и ошибки никакие не выдает....

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам