Страница: 1 |
Страница: 1 |
Вопрос: [Excel+Ado.net] Обновление записей - сплошной глюк
Добавлено: 01.03.07 10:41
Автор вопроса: Светлячок
помогите разобраться!
плииииЗ!
есть Excel-файл,нужно реализовать возможность редактировать его из формы с DataGrid.
c вставкой данных разобралась,а вот с Update ну никак!!!!не могу разобраться с запросом на обновление!!!!
что нужно писать в Where ведь в 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-сайт:
Профиль | | #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.0ata 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)
 im 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 ?
dr = ds.Tables("[Лист1$]".NewRow
dr("zavod" = ds.Tables(0).Rows(DataGrid1.CurrentRowIndex)("zavod"
napishi priamo vot tak:
ds.Tables("[Лист1$]".AcceptChanges()
Me.dscmd.Update(ds)
Номер ответа: 6
Автор ответа:
Светлячок
Вопросов: 2
Ответов: 4
Профиль | | #6
Добавлено: 01.03.07 11:38
не записывает в базу!
и ошибки никакие не выдает....