Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/14: Рейтинг темы: голосов - 14, средняя оценка - 4.93
4 / 4 / 1
Регистрация: 16.12.2009
Сообщений: 45
1

Возвращение текущей записи dataset

09.02.2010, 09:55. Показов 2833. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, подскажите пожалуйста как вернуть текущую запись dataset или черз что это реализовать?/так как я вычитал что даттасет не имеет текущей записи, и такго свойства там тоже нет/
вот код
C#
1
2
dataset1.Clear();
sqlDataAdapter1.Fill(dataset1);//после этого dataset перескакивает на первую запись
Необходимо вернуть текущую запись
Может переменную завести, потом в нее значение загнать/как бы значение текущей записи/, а после обновления её считать или как ?

Добавлено через 38 минут
Через bindingsource можно, по моему, а как?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.02.2010, 09:55
Ответы с готовыми решениями:

Удаление записи из DataSet
Пытаюсь удалить из DataSet несколько строк. Все нормально если удаление идет от последний записи к...

Удаление текущей записи
Здравствуйте! проблема такая копирую с журнала в архив данные и запись с которой производилось...

Поиск записи в таблице DataSet
Есть таблица пожаров в БД firebird , по ней нужно создать и постоянно обновлять данные в таблице ...

Добавление записи в Dataset, множество таблиц
Здравствуйте. У меня база представляет собой xml файл, в нем порядка 10 таблиц и одна общая...

6
336 / 269 / 21
Регистрация: 30.03.2009
Сообщений: 500
09.02.2010, 10:02 2
Добрый день.
Немного непонятно,ты почистил dataset1.Clear();
и заполнил sqlDataAdapter1.Fill(dataset1); Это-же в принципе новые данные(так-как данные в базе теоретически уже ты сам или кто-то изменил!!!), о каком возврате может идти речь???
Если очень надо сохранять старую копию, то сделай второй dataset, кроме того в dataset сидят все копии редактированных, удаленных и т.д. записей.
1
1513 / 780 / 103
Регистрация: 22.04.2008
Сообщений: 1,610
09.02.2010, 10:29 3
C#
1
2
3
4
bindingSource1.DataSource  = dataset1;
bindingSource1.DataMember = "TableName";
//Текущая запись
DataRowView dr = (DataRowView) bindingSource1.Current;
1
4 / 4 / 1
Регистрация: 16.12.2009
Сообщений: 45
09.02.2010, 10:47  [ТС] 4
Цитата Сообщение от dimasamchenko Посмотреть сообщение
Добрый день.
Немного непонятно,ты почистил dataset1.Clear();
и заполнил sqlDataAdapter1.Fill(dataset1); Это-же в принципе новые данные(так-как данные в базе теоретически уже ты сам или кто-то изменил!!!), о каком возврате может идти речь???
Если очень надо сохранять старую копию, то сделай второй dataset, кроме того в dataset сидят все копии редактированных, удаленных и т.д. записей.
Вот к примеру в таблице 1000 записей, это каждый раз после заполнения набора нужно сначала листать до той на которой остановился?
мне нужно получить запись
C#
1
DataRowView dr = (DataRowView) bindingSource1.Current;
получили
потом после fill чтоб эта же запись была как бы текущей, количество записей /эти 1000 штук/ не меняется
0
336 / 269 / 21
Регистрация: 30.03.2009
Сообщений: 500
09.02.2010, 10:53 5
Нет, ты меня не понял!
Я имел ввиду, что если ты почистил датасет, то каким образом вернуться к прошлому?
Посмотри, что ответил Sergei, может это ответ на твой вопрос!
Удачи.
1
137 / 133 / 20
Регистрация: 03.02.2009
Сообщений: 608
09.02.2010, 11:01 6
virus_t, я в таком случае обычно запоминаю например Primary key строки и пользуюсь след функциями...

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
int GetRowIndexById(DataGridView dataGrid, int id)
{
  CurrencyManager currencyManager =
      (CurrencyManager)BindingContext[dataGrid.DataSource, dataGrid.DataMember];
  DataView dataView = (DataView)currencyManager.List;
  DataRow dataRow = dataView.Table.Rows.Find(id);
  currencyManager.Position = GetRowIndexByRow(dataView, dataRow);
  return currencyManager.Position;
}
 
// Получить индекс строки по содержимому строки
int GetRowIndexByRow(DataView dataView, DataRow dataRow)
{
  if (dataRow == null)
     return 0;
  int count = dataView.Count;
  int pos = 0;
  for (int i = 0; i < count; i++)
  {
     if (dataView[i].Row == dataRow)
     {
    pos = i;
    break;
     }
  }
  return pos;
}
1
4 / 4 / 1
Регистрация: 16.12.2009
Сообщений: 45
09.02.2010, 13:25  [ТС] 7
В моем случае можно было обойтись и без clear))/ немного полопатив литературу по ado.net подумал я /
Всем спасибо)))
Извините, если что, я только учусь))
0
09.02.2010, 13:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.02.2010, 13:25
Помогаю со студенческими работами здесь

Значение ID новой записи в таблице DataSet
Есть бд1 на ms sql2008 с табличкой Authors (ID int autoincrement primary key,Name nvarchar)....

Gridview убрать выделение текущей записи
Здравствуйте! Нигде не могу найти ответа на вопрос и здравого выхода из ситуации. Как убрать курсор...

Определение текущей учетной записи Windows
Всем привет! Хочу написать программу для многопользовательского доступа. В БД access есть...

Передача данных из таблицы одной dataSet в таблицу другой dataSet
Здравствуйте. У меня возникла ситуация когда необходимо передать данные из таблицы одной dataset в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru