Есть ,две формы ,в первой можно просматривать в Gride (только для чтения) данные,
а редактирует их в диалоговом окне.При этом у меня возник вопрос,как лучше организовать
передачу данных в диалоговое окно.Сейчас я передаю их,через свойства диалогового окна
private string mTypDoc;
public string TypDoc
{
get
{
return txtTypDoc.Text.ToString();
}
set
{
mTypDoc=value;
txtTypDoc.Text=mTypDoc;
}
}
Здравствуйте, DavidA, Вы писали:
DA>Есть ,две формы ,в первой можно просматривать в Gride (только для чтения) данные, DA>а редактирует их в диалоговом окне.При этом у меня возник вопрос,как лучше организовать DA>передачу данных в диалоговое окно.Сейчас я передаю их,через свойства диалогового окна
я делаю это через конструктор диалоговой формы. в качестве параметра передается целиком DataRow.
С уважением, Владимир
Re[2]: Как лучше организовать передачу данных в диалоговое о
Здравствуйте, ВованЯ, Вы писали:
ВЯ>Здравствуйте, DavidA, Вы писали:
DA>>Есть ,две формы ,в первой можно просматривать в Gride (только для чтения) данные, DA>>а редактирует их в диалоговом окне.При этом у меня возник вопрос,как лучше организовать DA>>передачу данных в диалоговое окно.Сейчас я передаю их,через свойства диалогового окна
ВЯ>я делаю это через конструктор диалоговой формы. в качестве параметра передается целиком DataRow.
Мне приходила такая идея,но я не пробовал,а вот попытка передавать DataSet и привезать
TextBox к DataSet окончилась неудачно:
Здравствуйте, DavidA, Вы писали:
DA>Мне приходила такая идея,но я не пробовал,а вот попытка передавать DataSet и привезать DA>TextBox к DataSet окончилась неудачно:
Передавать нужно не DataRow и DataSet, а DataRowView и DataView
DA>private DataSet dsTypDoc;
DA>public eTypDocForm(ref DataSet ds) DA>{ DA> dsTypDoc=ds; DA> txtTypDoc.DataBindings.Add("Text",dsTypDoc.Tables["ListTypDoc"],"TypDoc"); DA>}
DA>хочу,чтобы данные в textbox'сах сами отображались.
наверное, нужно было бы вместе с DataSet передать CurrencyManager.Position и после установки databinding
выставить этот position для диалоговой формы.
завершение редактирования должно идти (поскольку position не изменняется) через
CurrencyManager.EndCurrentEdit (по OK), или CancelCurrentEdit для диалог.формы (по Cancel)
С уважением, Владимир
Re[2]: Как лучше организовать передачу данных в диалоговое о
Здравствуйте, ВованЯ, Вы писали:
ВЯ>Здравствуйте, DavidA, Вы писали:
DA>>Есть ,две формы ,в первой можно просматривать в Gride (только для чтения) данные, DA>>а редактирует их в диалоговом окне.При этом у меня возник вопрос,как лучше организовать DA>>передачу данных в диалоговое окно.Сейчас я передаю их,через свойства диалогового окна
ВЯ>я делаю это через конструктор диалоговой формы. в качестве параметра передается целиком DataRow.
а где нужно передавать занчения поля textbox'ксу
в конструкторе: txtTypDoc.Text=mRow["TypDoc"].ToString().Trim();
вылетает ошибка
если в событие Load то форма отображается пустая?
Re[3]: Как лучше организовать передачу данных в диалоговое о
Здравствуйте, DavidA, Вы писали:
DA>Здравствуйте, ВованЯ, Вы писали:
ВЯ>>Здравствуйте, DavidA, Вы писали:
DA>>>Есть ,две формы ,в первой можно просматривать в Gride (только для чтения) данные, DA>>>а редактирует их в диалоговом окне.При этом у меня возник вопрос,как лучше организовать DA>>>передачу данных в диалоговое окно.Сейчас я передаю их,через свойства диалогового окна
ВЯ>>я делаю это через конструктор диалоговой формы. в качестве параметра передается целиком DataRow.
DA> DA>а где нужно передавать занчения поля textbox'ксу
разобрался,теперь отображается
DA>в конструкторе: txtTypDoc.Text=mRow["TypDoc"].ToString().Trim();
DA>вылетает ошибка
DA>если в событие Load то форма отображается пустая?
Re[2]: Как лучше организовать передачу данных в диалоговое о
Здравствуйте, ВованЯ, Вы писали:
DA>>Есть ,две формы ,в первой можно просматривать в Gride (только для чтения) данные, DA>>а редактирует их в диалоговом окне.При этом у меня возник вопрос,как лучше организовать DA>>передачу данных в диалоговое окно.Сейчас я передаю их,через свойства диалогового окна
ВЯ>я делаю это через конструктор диалоговой формы. в качестве параметра передается целиком DataRow.
В своем проекте я посчитал разумным передавать не row, а только ключ, и тоже через конструктор.
Причина в том, что за время, пока пользователь смотрит в grid и выбирает запись на редактирование, база может измениться.
Re[3]: Как лучше организовать передачу данных в диалоговое о
N>В своем проекте я посчитал разумным передавать не row, а только ключ, и тоже через конструктор. N>Причина в том, что за время, пока пользователь смотрит в grid и выбирает запись на редактирование, база может измениться.
Так row это же ссылка! Если база изменится, в row это тоже отразится.
... << RSDN@Home 1.0 beta 6a >>
Re[4]: Как лучше организовать передачу данных в диалоговое о
Здравствуйте, mihailik, Вы писали:
N>>В своем проекте я посчитал разумным передавать не row, а только ключ, и тоже через конструктор. N>>Причина в том, что за время, пока пользователь смотрит в grid и выбирает запись на редактирование, база может измениться.
M>Так row это же ссылка! Если база изменится, в row это тоже отразится.
Странно, может я не понимаю чего...
Под row мы тут понимаем DataRow, так?.. DataRow ссылается в DataSet, который в свою очередь есть структура данных в памяти, представляющая образ базы или одной из таблиц базы. Допустим, что база изменилась (извне, не важно чем и как). Так как это может отразиться в row? База же не будет сообщать программе о своем изменении. Да и в любом случае, для обновления датасета нужна какая-то синхронизация — вызов SQL-оператора SELECT, например.
В моей программе предполагается многопользовательская работа, поэтому изменение базы извне возможно в любой момент. Вот поэтому я и передаю ключ на строку, а не row.
... << RSDN@Home 1.0 beta 6a >>
Re[5]: Как лучше организовать передачу данных в диалоговое о
Здравствуйте, nzeemin, Вы писали:
N>Под row мы тут понимаем DataRow, так?.. DataRow ссылается в DataSet, который в свою очередь есть структура данных в памяти, представляющая образ базы или одной из таблиц базы. Допустим, что база изменилась (извне, не важно чем и как). Так как это может отразиться в row? База же не будет сообщать программе о своем изменении. Да и в любом случае, для обновления датасета нужна какая-то синхронизация — вызов SQL-оператора SELECT, например. N>В моей программе предполагается многопользовательская работа, поэтому изменение базы извне возможно в любой момент. Вот поэтому я и передаю ключ на строку, а не row.
Скажи пожалуйста, а как у тебя решается проблема когда двое (или более) пользователей пытаются редактировать одну и ту и же запись — запрещаешь второму пользователю открыть диалог редактирования или как-то по-другому?
... << RSDN@Home 1.0 beta 6a >>
Re[6]: Как лучше организовать передачу данных в диалоговое о
Здравствуйте, Lmdrv, Вы писали:
N>>Под row мы тут понимаем DataRow, так?.. DataRow ссылается в DataSet, который в свою очередь есть структура данных в памяти, представляющая образ базы или одной из таблиц базы. Допустим, что база изменилась (извне, не важно чем и как). Так как это может отразиться в row? База же не будет сообщать программе о своем изменении. Да и в любом случае, для обновления датасета нужна какая-то синхронизация — вызов SQL-оператора SELECT, например. N>>В моей программе предполагается многопользовательская работа, поэтому изменение базы извне возможно в любой момент. Вот поэтому я и передаю ключ на строку, а не row.
L>Скажи пожалуйста, а как у тебя решается проблема когда двое (или более) пользователей пытаются редактировать одну и ту и же запись — запрещаешь второму пользователю открыть диалог редактирования или как-то по-другому?
Разрешаю редактировать обоим без всяких проверок.
База — .MDB через Jet, и приложение не такого уровня чтобы делать серьезное разграничение доступа с локами на каждое открытие диалога.
Кстати, мне кажется ты ушел от ответа — как все-таки у тебя оказывается что "Если база изменится, в row это тоже отразится"?
Re[7]: Как лучше организовать передачу данных в диалоговое о
Здравствуйте, nzeemin, Вы писали:
L>>Скажи пожалуйста, а как у тебя решается проблема когда двое (или более) пользователей пытаются редактировать одну и ту и же запись — запрещаешь второму пользователю открыть диалог редактирования или как-то по-другому?
N>Разрешаю редактировать обоим без всяких проверок. N>База — .MDB через Jet, и приложение не такого уровня чтобы делать серьезное разграничение доступа с локами на каждое открытие диалога.
Спасибо, у меня аналогичная задача с такой же базой (с очень простой структурой), только я пока что новичок (и в базах и в .NET).
N>Кстати, мне кажется ты ушел от ответа — как все-таки у тебя оказывается что "Если база изменится, в row это тоже отразится"?
Наверное перепутал меня с mihailik.
... << RSDN@Home 1.0 beta 6a >>
Re[7]: Как лучше организовать передачу данных в диалоговое о
N>>>Под row мы тут понимаем DataRow, так?.. DataRow ссылается в DataSet, который в
N>Кстати, мне кажется ты ушел от ответа — как все-таки у тебя оказывается что "Если база изменится, в row это тоже отразится"?
Нет, это у меня "оказывается"
Я просто не понял, что ты в диалоге опять перечитываешь данные. В принципе, мне такой подход не нравится, но это уж смотря по задаче.
Я считаю, хорошо бы пользователю предоставлять одну целостную картину данных на какой-то момент. А то получится, что он в списке выбрал "Кузьма", а диалог перечитал данные и отобразил уже "Кузя". При этом основная форма на заднем плане так и висит как "живое свидетельство собственного горя и сиротства".
А если там ещё и фильтры, то всё может слишком усложниться. То ли дело, если мы обновляем данные единовременно, всем скопом. Ну, да дело хозяйское
... << RSDN@Home 1.0 beta 6a >>
Re[7]: Как лучше организовать передачу данных в диалоговое о
N>>>Под row мы тут понимаем DataRow, так?.. DataRow ссылается в DataSet, который в
N>Кстати, мне кажется ты ушел от ответа — как все-таки у тебя оказывается что "Если база изменится, в row это тоже отразится"?
Нет, это у меня "оказывается"
Я просто не понял, что ты в диалоге опять перечитываешь данные. В принципе, мне такой подход не нравится, но это уж смотря по задаче.
Я считаю, хорошо бы пользователю предоставлять одну целостную картину данных на какой-то момент. А то получится, что он в списке выбрал "Кузьма", а диалог перечитал данные и отобразил уже "Кузя". При этом основная форма на заднем плане так и висит как "живое свидетельство собственного горя и сиротства".
А если там ещё и фильтры, то всё может слишком усложниться. То ли дело, если мы обновляем данные единовременно, всем скопом. Ну, да дело хозяйское
... << RSDN@Home 1.0 beta 6a >>
Re[8]: Как лучше организовать передачу данных в диалоговое о
От:
Аноним
Дата:
15.06.04 13:47
Оценка:
Здравствуйте, mihailik, Вы писали:
N>>>>Под row мы тут понимаем DataRow, так?.. DataRow ссылается в DataSet, который в
N>>Кстати, мне кажется ты ушел от ответа — как все-таки у тебя оказывается что "Если база изменится, в row это тоже отразится"?
M>Нет, это у меня "оказывается"
M>Я просто не понял, что ты в диалоге опять перечитываешь данные. В принципе, мне такой подход не нравится, но это уж смотря по задаче.
M>Я считаю, хорошо бы пользователю предоставлять одну целостную картину данных на какой-то момент. А то получится, что он в списке выбрал "Кузьма", а диалог перечитал данные и отобразил уже "Кузя". При этом основная форма на заднем плане так и висит как "живое свидетельство собственного горя и сиротства".
M>А если там ещё и фильтры, то всё может слишком усложниться. То ли дело, если мы обновляем данные единовременно, всем скопом. Ну, да дело хозяйское
Лучше передавать DataRow так как можно созранить в БД и автоматически обновится строка в гриде
если изменить содержимое данной DataRow
Я согласен что надо редактировать старую версию строки а вот дальше что делать если кто-то изменил строку
кто как решает данную ситуацию ??? (я пока сохраняю данные кто последний)
Re[9]: Как лучше организовать передачу данных в диалоговое о
А>Я согласен что надо редактировать старую версию строки а вот дальше что делать если кто-то изменил строку А>кто как решает данную ситуацию ??? (я пока сохраняю данные кто последний)
Это вопрос организационный вроде бы. Но обычно делают как проще — кто последний.