powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Update через DataGrid
18 сообщений из 18, страница 1 из 1
Update через DataGrid
    #34303743
ANF76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, помогите. Прочитал книжку, а апдейт не получается, только строки для редактирования открываются в виде TextBox. А дальше темный лес для меня. В коде dgResults_CancelCommand не знаю что написать, чтобы возвращалась строка в исходное состояние. А в dgResults_UpdateCommand при изменении строки данные чтобы изменились в базе и на DataGrid

Вот собственно сам DataGrid

<asp:DataGrid id="dgResults" AutoGenerateColumns="False" OnItemCommand="Click_Grid" OnEditCommand="dgResults_EditCommand" OnCancelCommand="dgResults_CancelCommand" OnUpdateCommand="dgResults_UpdateCommand" runat="server">
<Columns>
<asp:BoundColumn HeaderText="Должность" DataField="НаимДолжн"></asp:BoundColumn>
<asp:BoundColumn HeaderText="Фамилия Имя Отчество" DataField="ФИО"></asp:BoundColumn>
<asp:BoundColumn HeaderText="Кабинет" DataField="Кабинет"></asp:BoundColumn>
<asp:BoundColumn HeaderText="Телефон" DataField="телефон"></asp:BoundColumn>
<asp:BoundColumn HeaderText="ДопИнф" DataField="ДопИнф"></asp:BoundColumn>
<asp:BoundColumn HeaderText="отдел" DataField="отдел"></asp:BoundColumn>
<asp:BoundColumn HeaderText="Структура" DataField="Структура" Visible="False"></asp:BoundColumn>
<asp:BoundColumn DataField="Код" Visible="False"></asp:BoundColumn>
<asp:ButtonColumn HeaderText="Удаление" ButtonType="LinkButton" Text="Удалить" CommandName="cmdRemoveItem"></asp:ButtonColumn>
<asp:EditCommandColumn HeaderText="Редактирование" EditText="Редактировать" CancelText="Отменить" UpdateText="Изменить" ButtonType="LinkButton"></asp:EditCommandColumn>
</Columns>
</asp:DataGrid>


Вот код к нему:

<%@ Page Language="VB" Debug="true" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OLEDB" %>
<script runat="server" language=vb>

Sub Page_Load (ByVal Sender as Object, ByVal E as EventArgs)


Dim DBConn as OleDBConnection
Dim DBCommand as OleDBDataAdapter
Dim DSPageData as New DataSet
DBConn = New OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=C:\Tel_SN"& _
".mdb")

DBCommand = New OleDbDataAdapter ("Select НаимДолжн, ФИО, Кабинет, телефон, ДопИнф, отдел, Код, Структура from Тел", DBConn)
DBCommand.Fill (DSPageData, _
"SignIn")
dgResults.DataSource = DSPageData.Tables("SignIn").DefaultView
dgResults.DataBind()
End Sub

Sub dgResults_EditCommand(source as Object, e as DataGridCommandEventArgs) Handles dgResults.EditCommand
dgResults.EditItemIndex = e.Item.ItemIndex
dgResults.DataBind()
End Sub

Sub dgResults_CancelCommand(source as Object, e as DataGridCommandEventArgs) Handles dgResults.CancelCommand
dgResults.EditItemIndex = -1
dgResults.DataBind()
End Sub

Sub dgResults_UpdateCommand(source as Object, e as DataGridCommandEventArgs) Handles dgResults.UpdateCommand

End Sub



Спасибо...
...
Рейтинг: 0 / 0
Update через DataGrid
    #34307688
ANF76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все-таки этот код работает нормально. То есть, в режим редактирования dgResults_EditCommand DataGrid переходит, из режима редактирования CancelCommand в нормальный режим возвращается, но вот UpdateCommand не хочет работать. Вроде бы в textBox'е Datagrid'а новую запись пишу, а строка обновляется со старыми данными. Может кто знает, в чем причина?

Sub dgResults_UpdateCommand(ByVal source As Object, ByVal e As DataGridCommandEventArgs)

Dim НаимДолжн1 as string
Dim Код1 as Integer
Dim tb1, tb7 As TextBox
tb7 = CType(e.Item.Cells(7).Controls(0), TextBox)
Код1 = CInt(tb7.text)

tb1 = CType(e.Item.Cells(0).Controls(0), TextBox)
НаимДолжн1 = CStr(tb1.text)

Dim DBConn as OleDBConnection
Dim DBUpdate As New OleDbCommand
Dim DSPageData as New DataSet
DBConn = New OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=C:\Tel_SN"& _
".mdb")


DBUpdate.CommandText = "Update НГДУСН Set НаимДолжн = '" & НаимДолжн1 & "' where Код = " & Код1 & ""
DBUpdate.Connection = DBConn
DBUpdate.Connection.Open
DBUpdate.ExecuteNonQuery()
dgResults.EditItemIndex = -1
dgResults.DataBind()

End Sub
...
Рейтинг: 0 / 0
Update через DataGrid
    #34308087
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там используется конструкция вида
Код: plaintext
dr["au_fname"] = ((TextBox)e.Item.Cells[ 2 ].Controls[ 0 ]).Text;
полный текст статьи

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Update через DataGrid
    #34310625
ANF76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, этот код на С#, а мне нужен на VB.

Кстати, если скомпилировать данный код на С#, получится тот же на VB, наверное.
Что у меня и есть в исходнике
...
Рейтинг: 0 / 0
Update через DataGrid
    #34312240
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ANF76 Нет, этот код на С#, а мне нужен на VB.

Кстати, если скомпилировать данный код на С#, получится тот же на VB, наверное.
Что у меня и есть в исходнике

так его нетрудно под Басик переделать

примерно так
Код: plaintext
dr["au_fname"] = CType(e.Item.Cells[ 2 ].Controls[ 0 ], TextBox).Text

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Update через DataGrid
    #34318388
ANF76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написал код по примеру, но программа тормозится на этой строке:

ds.Tables(0).PrimaryKey = New DataColumn(ds.Tables(0).Columns("Код"))

пишется Value of type 'System.Data.DataColumn' cannot be converted to 'String'

Как победить это? Пока знаний не хватает моих.
...
Рейтинг: 0 / 0
Update через DataGrid
    #34319495
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ANF76 Написал код по примеру, но программа тормозится на этой строке:

ds.Tables(0).PrimaryKey = New DataColumn(ds.Tables(0).Columns("Код"))

пишется Value of type 'System.Data.DataColumn' cannot be converted to 'String'

Как победить это? Пока знаний не хватает моих.

PrimaryKey - здесь задается ИМЯ столбца, который будет ключевым



I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Update через DataGrid
    #34320909
ANF76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To HondKot


Может Вы посмотрите код моей программы (прилагается), бьюсь, бьюсь, ищу коды в инете, но не помогает.
С PrimaryKey вроде разобрался, но теперь пишет:

reference not set to an instance of an object.

останавливается на
myColArray(0) = ds.Tables(0).Columns("Код")

Буду признателен
...
Рейтинг: 0 / 0
Update через DataGrid
    #34322738
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подозреваю что ошибка здесь
myColArray(0) = ds.Tables(0).Columns("Код")
у вас массив не иниацилизирован а вы к нему обращаетесь, да и описан он неправильно

напишите так
Код: plaintext
1.
2.
 Dim myColArray( 0 ) As DataColumn
 myColArray( 0 ) = ds.Tables( 0 ).Columns("Код")


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Update через DataGrid
    #34325384
ANF76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Исправил, страничка работает, но все равно данные после редактирования не обновляются в DataGride.

??? Какая еще заковыка заложена?
...
Рейтинг: 0 / 0
Update через DataGrid
    #34337858
ANF76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, кто пытался мне помочь. Наконец-то этот код побежден.

Помогла Библиотека классов .NET Framework DataGrid.EditItemIndex - свойство в MSDN
...
Рейтинг: 0 / 0
Update через DataGrid
    #34338574
AndreyI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет! Столкнулся с аналогичной проблемой и также дошел в своих изысках до
ANF76Исправил, страничка работает, но все равно данные после редактирования не обновляются в DataGride.
??? Какая еще заковыка заложена?
Если можно прокоментировать
ANF76 Наконец-то этот код побежден.
Помогла Библиотека классов .NET Framework DataGrid.EditItemIndex - свойство в MSDN
и желательно код подкинуть
...
Рейтинг: 0 / 0
Update через DataGrid
    #34338765
ANF76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://msdn.microsoft.com/library/rus/default.asp?url=/library/rus/cpref/html/frlrfsystemwebuiwebcontrolsdatagridclassedititemindextopic.asp
...
Рейтинг: 0 / 0
Update через DataGrid
    #34338766
ANF76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ANF76http://msdn.microsoft.com/library/rus/default.asp?url=/library/rus/cpref/html/frlrfsystemwebuiwebcontrolsdatagridclassedititemindextopic.asp
...
Рейтинг: 0 / 0
Update через DataGrid
    #34338817
AndreyI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ANF76 ANF76http://msdn.microsoft.com/library/rus/default.asp?url=/library/rus/cpref/html/frlrfsystemwebuiwebcontrolsdatagridclassedititemindextopic.asp
Прочитал 9 раз, ну хоть убейте не могу понять и всё тут!!!!!!! Если не жалко можно всё таки пояснить почему не обновляется в дата грид????? Ведь код который я увидел у вас и мой как две капли воды:
Dim myConn As OleDbConnection
Dim myData As OleDbDataAdapter
Dim ds As New DataSet
Dim cns As String = Application("database")
myConn = New OleDbConnection(cns)

myData = New OleDbDataAdapter("Select * from BazaCalc where " + DropDownList1.SelectedValue + " = True", myConn)
myData.Fill(ds)
Dim myColArray(0) As DataColumn
myColArray(0) = ds.Tables(0).Columns("id")

ds.Tables(0).PrimaryKey = myColArray
Dim dr As DataRow
dr = ds.Tables(0).Rows.Find(DataGrid1.DataKeys(e.Item.ItemIndex))
If ds.Tables(0).Rows.Count <> 0 Then

dr("Marka") = CType(e.Item.Cells(1).Controls(0), TextBox).Text
dr("Stoim") = CType(e.Item.Cells(3).Controls(0), TextBox).Text


End If

ds.AcceptChanges()
DataGrid1.EditItemIndex = -1
DataGrid1.DataSource = ds.Tables(0).DefaultView
DataGrid1.DataKeyField = "id"
DataGrid1.DataBind()


В чем проблема? Пожалуйста растолкуйте непутевому!!!!
...
Рейтинг: 0 / 0
Update через DataGrid
    #34338967
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreyI
В чем проблема? Пожалуйста растолкуйте непутевому!!!!

что именно вы хотите получить?

Код: plaintext
 uid  =  S a

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Update через DataGrid
    #34339310
AndreyI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да проблема собственно в том что не обновляются данные, а в остальном все хорошо
...
Рейтинг: 0 / 0
Update через DataGrid
    #34339400
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreyI
проблема собственно в том что не обновляются данные, а в остальном все хорошо

я так и не увидил у вас кода обновления записей. поэтом интересно что вы вкладываете в это понятие?

Код: plaintext
 uid  =  S a

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Update через DataGrid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]