|
Никак не получается обновить запись через DataSet
|
|||
---|---|---|---|
#18+
Все делал Wizard-ами, сделал OleDbConnection, OleDbDataAdapter, DataSet На старте заполняю DataSet На страничке один TextBox, я его Text привязываю: DataBinder.Eval(DataSet11, "Tables[ACCOUNTS].DefaultView.[0].ACCOUNT") Ставлю свойство AutoPostBack, на событии TextChanged вешаю код: Me.DataSet11.Tables("ACCOUNTS").Rows(0)("ACCOUNT") = Me.TextBox1.Text Me.DataSet11.GetChanges(DataRowState.Modified) Me.DataSet11.AcceptChanges() Me.OleDbDataAdapter1.Update(Me.DataSet11, "ACCOUNTS") И НИЧЕГО!!! Что не так? Рыскал - рыскал по Интернету, нигде толком не объяснена работа с такими вещами, только SqlData описаны, пытаюсь привернуть к OleDb - не получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2003, 11:38 |
|
Никак не получается обновить запись через DataSet
|
|||
---|---|---|---|
#18+
Более того, пишу прямо: Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged Dim con As New System.Data.OleDb.OleDbConnection("Provider=OraOLEDB.Oracle;Password=ownerPassword;Persist Security Info=True;User ID=schemaOwner;Data Source=oracledb.world;") con.Open() Dim cmd As New System.Data.OleDb.OleDbCommand("update ACCOUNTS set ACCOUNT=" + Me.TextBox1.Text + " where ACCOUNT=" + TextBox2.Text, con) cmd.ExecuteNonQuery() End Sub Молча возвращает меня на страничку, премиленько заполняя ее старыми данными ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2003, 12:02 |
|
Никак не получается обновить запись через DataSet
|
|||
---|---|---|---|
#18+
Еще более того! Устанавливаю переменную сессии: Session("recs") = cmd.ExecuteNonQuery() И в Page_Load пишу: Response.Write(Session("recs")) Так он самым наглым образом пишет мне 1!!! Так где же 1, ежели данные все те же? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2003, 12:16 |
|
Никак не получается обновить запись через DataSet
|
|||
---|---|---|---|
#18+
Ну вот, закопался я... Забыл совсем, что в TextBox1.Text в текущий момент находятся данные, из только что прочитанные из базы, а данные, которые я ввел в форме после SubMit-а формы находятся в коллекции Request.Form.Items... Так и заполнял поля старыми данными ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2003, 12:28 |
|
Никак не получается обновить запись через DataSet
|
|||
---|---|---|---|
#18+
Ну вот и поговорил сам с собою, а отчего же не поговорить с интересным собеседником? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2003, 12:29 |
|
Никак не получается обновить запись через DataSet
|
|||
---|---|---|---|
#18+
и действительно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2003, 10:32 |
|
Никак не получается обновить запись через DataSet
|
|||
---|---|---|---|
#18+
Стандартную трассировку нужно применять, чего на вход подаешь, чего на выходе получаешь. Response.Write или Trace.Warn ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2003, 12:41 |
|
Никак не получается обновить запись через DataSet
|
|||
---|---|---|---|
#18+
А теперь кто-нить мне скажет, как выцепить измененные данные с помощью привязанного DataGrid-а? А примеры я нашел совсем неубедительные, т.к. в них рассматриваются значения не переданные EventHandler-у, а как будто заново прочитанные. Ситуация: Я делаю DataGrid с возможностью Edit, заполняю его из DataSet-а Начинаю правку данных таким образом: Код: plaintext 1. 2. 3. 4.
Обрабатываю их обновление таким: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Так в контролах находятся то ли старые (до правки), то ли заново прочитанные из DataSet-а данные, но не те, которые я внес. Как быть? Как к ним доступиться? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2003, 10:45 |
|
Никак не получается обновить запись через DataSet
|
|||
---|---|---|---|
#18+
Почему MSDN не соответствует тому, что есть на самом деле? Пришлось написать запрос типа: Request.Form.Item("DataGrid1:ctl1:TextBox1") Сработало, но откуда мне знать, как будет называться контрол на двенадцатой строке третьей страницы? Подскажите, как правильно работать с DataGrid-ами Очень хотелось бы видеть способ типа: DataGrid1.Items(x)(y).Value внутри события, чтобы он давал измененные значения, неужели такого нету? Серверный ведь элемент управления... Где надо рыть? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2003, 11:53 |
|
Никак не получается обновить запись через DataSet
|
|||
---|---|---|---|
#18+
Ну вот, опять у тебя разговор сам с собой получается. ЗЫ: Извини, сам помочь ничем не могу. :( ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2003, 11:58 |
|
Никак не получается обновить запись через DataSet
|
|||
---|---|---|---|
#18+
Отрыл собаку, оказалась в событии Page_Load. Нельзя перезаполнять ни грид ни датасет, т.к. событие, к сожалению, отрабатывается после повторного Page_Load-а. Ужасающая идеология... Уж если Event-based, тогда порядок обработки событий бы правильно построили, что-ли... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2003, 06:13 |
|
Никак не получается обновить запись через DataSet
|
|||
---|---|---|---|
#18+
так они там правильно и построены - Page_Init Page_Load обработка событий компонент Page_Unload +используем Page.IsPostBack для того, чтобы отличить 1-ую загрузку от последующих. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2003, 11:30 |
|
Никак не получается обновить запись через DataSet
|
|||
---|---|---|---|
#18+
так они там правильно и построены - Page_Init Page_Load обработка событий компонент Page_Unload +используем Page.IsPostBack для того, чтобы отличить 1-ую загрузку от последующих. А где компоненты создаются? После Page_Init или перед? А если было 2 PostBack-а? Т.е. была ошибка заполнения, обработанная на сервере и возвращенная для исправления, как тут быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2003, 05:58 |
|
Никак не получается обновить запись через DataSet
|
|||
---|---|---|---|
#18+
А где компоненты создаются? После Page_Init или перед? был уверен, что во время :) но вот с удивлением прочёл статью, в которой чётко указано, что server контролы создаются во время Load: Perform actions common to all requests, such as setting up a database query. At this point, server controls in the tree are created and initialized , the state is restored, and form controls reflect client-side data. See Handling Inherited Events. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconcontrolexecutionlifecycle.asp А если было 2 PostBack-а? Т.е. была ошибка заполнения, обработанная на сервере и возвращенная для исправления, как тут быть? да хоть 3 постбэка - какая разница? ну была ошибка, ну вернули страницу, ну и что? юзер исправит ошибку и отошлёт её ещё раз. состояние страницы сохранится благодаря viewstate. Я тут проблемы не вижу, либо вы тут что-то недоговариваете :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2003, 10:10 |
|
|
start [/forum/topic.php?fid=17&gotonew=1&tid=1354349]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
12ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 232ms |
total: | 378ms |
0 / 0 |